TEMPLATEPATH fără numele temei? Nu există constanta THEMEPATH?

24 mar. 2011, 00:21:18
Vizualizări: 2.87K
Voturi: 0

Există vreo metodă de a obține calea către directorul temelor fără tema curentă în cale?

De exemplu, într-o instalare standard WP, aș dori să obțin o referință către:

C:\xampplite\htdocs\numele-site/wp-content/themes/

Însă constanta TEMPLATEPATH returnează...

C:\xampplite\htdocs\numele-site/wp-content/themes/tema-activa-curent

0
Toate răspunsurile la întrebare 4
4
dirname( STYLESHEETPATH );

Aceasta va returna directorul temei.

Niciodată nu presupuneți /wp-content/ sub ABSPATH. Eu folosesc adesea un director și domeniu diferit pentru wp-content pentru a permite cereri fără cookie către fișierele temei. Plugin-urile și temele proaste se strică groaznic în astfel de cazuri.

Adăugare

Sau folosiți get_theme_root() pentru calea fișierului și get_theme_root_uri() pentru URI. Ambele sunt definite în wp-includes/theme.php.

24 mar. 2011 01:12:29
Comentarii
  • 1 Mulțumesc. Acest lucru funcționează și el. Ar fi vreun beneficiu în utilizarea acesteia față de răspunsul lui imHavoc?
Scott B Scott B
24 mar. 2011 15:09:18

@Scott B Nu ar trebui să fie nicio diferență. STYLESHEETPATH este definit în wp-includes/default-constants.php apelând get_stylesheet_directory() care întreabă get_theme_root().

fuxia fuxia
24 mar. 2011 15:46:18

de fapt, după o analiză mai amănunțită, răspunsul tău este mai potrivit pentru întrebarea mea. returnează o cale de fișier, nu o cale URL așa cum face get_theme_root_uri() (c:\ în loc de http://) și, deoarece mut fișiere, exact asta aveam nevoie în acest caz.

Scott B Scott B
24 mar. 2011 19:37:15

@Scott B Am adăugat cele două funcții pentru cale și URI pentru a completa răspunsul.

fuxia fuxia
25 mar. 2011 02:22:59
2

Nu există o constantă THEMEPATH, dar poți folosi funcția get_theme_root_uri() pentru a obține calea către folderul de teme.

24 mar. 2011 00:36:53
Comentarii

Aceasta pare cea mai bună opțiune. O testez acum.

Scott B Scott B
24 mar. 2011 14:42:04

Funcționează perfect, totuși, în acest caz, caut o cale către fișier, nu o cale URL. Mut fișiere pe server dintr-un folder de plugin în folderul de teme. Răspunsul tău funcționează bine, în funcție de contextul întrebării.

Scott B Scott B
24 mar. 2011 19:40:07
0

WP_CONTENT_DIR și WP_CONTENT_URL, precum și funcția content_url() vă ajută în mare măsură să ajungeți acolo.

24 mar. 2011 00:51:04
4

Poți folosi constanta ABSPATH și doar să adaugi la ea wp-content/themes/ astfel:

ABSPATH . "wp-content/themes/" 
24 mar. 2011 00:37:50
Comentarii

Poate utilizatorul să specifice orice alt director decât wp-content/themes pentru a-și stoca temele?

Scott B Scott B
24 mar. 2011 00:43:39

@Scott: Este posibil, dar foarte greu de realizat și puțin probabil ca cineva să fi făcut asta.

Bainternet Bainternet
24 mar. 2011 00:51:19

Două linii în wp-config.php nu sunt chiar atât de greu. ;) Doar definește WP_CONTENT_DIR și WP_CONTENT_URL.

fuxia fuxia
24 mar. 2011 01:13:45

@toscho: mulțumesc, înveți lucruri noi în fiecare zi, tocmai citeam despre asta pe http://codex.wordpress.org/Determining_Plugin_and_Content_Directories

Bainternet Bainternet
24 mar. 2011 01:41:43