get_template_directory_uri che punta al tema principale non a quello secondario


35

Il problema che sto riscontrando è che get_template_directory_uri punta al tema genitore come site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php

ma voglio che indichi il tema di mio figlio che dovrebbe essere site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php

quello che sto usando è include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');

Risposte:


70

get_template_directory_uri() restituirà sempre l'URI del tema principale corrente.

Per ottenere invece l'URI del tema figlio, è necessario utilizzare get_stylesheet_directory_uri().

Puoi trovarli nella documentazione , insieme a un elenco di altre funzioni utili per ottenere varie posizioni nella directory dei temi.


Se si preferisce utilizzare una costante, TEMPLATEPATHè simile alla chiamata get_template_directory()(ad esempio il tema principale) ed STYLESHEETPATHè simile alla chiamata get_stylesheet_directory()(ad esempio il tema figlio).

Queste costanti sono impostate dal core di WordPress wp-includes/default-constants.phpe sostanzialmente assomigliano a questo:

define('TEMPLATEPATH', get_template_directory());
...
define('STYLESHEETPATH', get_stylesheet_directory());

Se non è presente alcun tema figlio, entrambe le funzioni "modello" e "foglio di stile" restituiranno la posizione del tema principale.

Nota la differenza tra queste funzioni e le funzioni che terminano _uri- queste restituiranno il percorso assoluto del server (ad es. /home/example/public_html/wp-content/yourtheme), Mentre le _urifunzioni restituiranno l'indirizzo pubblico (aka URL) - ad es. http://example.com/wp-content/themes/yourtheme.


che dire include (TEMPLATEPATH. '/myGallery/gallery_functions_include.php'); questo va anche nella directory principale
Elroy Fernandes, il

@ElroyFernandes Ho aggiunto questo alla mia risposta. STYLESHEETPATH ​​è la costante che vorresti invece
Tim Malone,

2
Grazie per aver risposto alla domanda invece di dire semplicemente RTM. Questo è apparso per primo nei miei risultati di ricerca.
Rinogo,

2
Buona risposta ma cattiva denominazione da parte di WordPress - non è solo per fogli di stile, è per JS, risorse, include ecc.
Paul Feakins,

1
@PaulFeakins Non iniziare a nominare incoerenze in WordPress: questa è una strada lunga e ventosa che conduce chissà dove! ;)
Tim Malone,

0

È necessario spostare i modelli personalizzati, quelli che non sono controllati dal tema attivo, in una cartella secondaria.

Mantieni il tema separato da tutti i file personalizzati in questo modo il tema può essere aggiornato senza perdere il tuo lavoro personalizzato.

Il tuo tema pronto all'uso vive qui
------------------------------------
wp-content \ Themes \ some_theme \\ sito \
Il tema del tuo bambino vive qui
---------------------------
\\ Site \ wp-content \ Themes \ some_theme-figlio

I tuoi stili e modelli personalizzati e tutte le tue inclusioni (cose come javascript personalizzato, immagini che non sono salvate in WP, caratteri personalizzati, file di dati json e qualsiasi plug-in che potresti accodare) dovrebbero essere spostati nella cartella figlio ESTERNO del tema.

\ Themes \ some_theme
\ themes \ some_theme-child \ (tutti i tuoi file template php personalizzati qui)
\ Themes \ some_theme-figlio \ immagini
\ Themes \ some_theme-bambino \ include 
\ Themes \ some_theme-figlio \ lingue
\ Themes \ some_theme-bambino \ JSON 
\ Themes \ some_theme-bambino \ stile

Per le tue pagine di stile personalizzate ( non il style.css ignorato del tema ) accodati con wp_enqueue_style ('some-css', get_stylesheet_directory () . '/Style/some.css', false, '0.0.1', 'all');

Usa get_stylesheet_directory_uri () con le tue chiamate xhr, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.