Come ottenere il percorso del tema corrente?

5 apr 2012, 22:27:30
Visualizzazioni: 128K
Voti: 44

Questo codice viene utilizzato per ottenere la directory del plugin corrente: plugin_dir_url( __FILE__ ).

Cosa dovrei usare per ottenere la directory del tema corrente?

0
Tutte le risposte alla domanda 2
5
83

Penso che tu debba prestare un po' di attenzione perché dipende da quello che stai cercando di fare.

Se stai utilizzando un child theme, get_template_directory(); farà comunque riferimento al tema genitore. Tuttavia, get_stylesheet_directory(); farà riferimento al tema corrente, che sia child o parent. Inoltre, entrambe queste funzioni restituiscono percorsi assoluti sul server.

Se invece hai bisogno di un URI completo, ad esempio per link o immagini, dovresti usare get_template_directory_uri(); o get_stylesheet_directory_uri();, scegliendo quello corretto per i motivi già indicati.

Riepilogo

5 apr 2012 23:51:27
Commenti

+1. Sempre usa il percorso/URL stylesheet per riferirti al Tema corrente, e riserva il percorso/URL template per riferirti al Tema genitore.

Chip Bennett Chip Bennett
6 apr 2012 00:00:12

Sfortunatamente get_template_directory() restituisce l'intero percorso del server come /var/www/the/path/of/actual/wp-content/themes/mytheme che non è ciò che vuoi per fare operazioni con $wp_filesystem se WP si connette via FTP.

NoBugs NoBugs
11 set 2014 06:41:37

@NoBugs - Anche io ottenevo l'intero percorso del server ma usando get_stylesheet_directory_uri() invece di get_stylesheet_directory() ho risolto il problema.

TheLibzter TheLibzter
5 feb 2015 00:19:10

Grazie! La maggior parte delle risposte che ho trovato mi hanno aiutato in parte usando get_stylesheet_directory() ma poi mi lasciavano nella directory root del server. get_stylesheet_directory_uri() è stata la risposta alle mie preghiere!

sigmapi13 sigmapi13
7 ago 2020 20:44:07

Ah, WordPress. Compatibile con le versioni precedenti fino all'eccesso. (Nessuna persona sana di mente userebbe deliberatamente convenzioni di denominazione così ambigue!)

rinogo rinogo
3 set 2021 21:38:28
2
13

get_stylesheet_directory_uri è la funzione che desideri. Restituisce l'URL del tema corrente. get_stylesheet_directory invece restituirà il percorso del file sul server.

Ad esempio:

<img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/image.png" />

Se hai bisogno del tema genitore, get_template_directory e get_template_directory_uri sono gli equivalenti.

Se non esiste un tema genitore, entrambi restituiranno lo stesso valore.

Ulteriori letture:

5 apr 2012 22:29:25
Commenti

get_stylesheet_directory() è la risposta corretta. get_template_directory() punterà al tema genitore se viene utilizzato un tema figlio.

Lucas Bustamante Lucas Bustamante
11 lug 2020 05:20:46

Ho modificato la risposta di conseguenza

Tom J Nowell Tom J Nowell
25 ago 2020 17:02:58