get_template_directory_uri üst temayı işaret ediyor alt temayı değil


35

Karşılaştığım sorun, get_template_directory_uri'nin aşağıdaki gibi ana temayı göstermesidir. site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php

ama olması gereken çocuk temamı göstermesini istiyorum site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php

kullandığım şey include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');

Yanıtlar:


70

get_template_directory_uri() daima geçerli ana temanın URI'sini döndürür.

Alt tema URI'sını almak için kullanmanız gerekir get_stylesheet_directory_uri().

Bunları çeşitli tema dizini konumlarını almak için diğer yararlı işlevlerin bir listesi ile birlikte belgelerde bulabilirsiniz .


Eğer bir sabit kullanmayı tercih ederseniz, o zaman TEMPLATEPATHaramaya benzer get_template_directory()(yani ana tema) ve STYLESHEETPATHaramaya benzer get_stylesheet_directory()(yani alt tema).

Bu sabitler WordPress çekirdeği tarafından ayarlanır wp-includes/default-constants.phpve temelde şuna benzer:

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

O zaman hiçbir çocuk teması, 'şablon' hem varsa ve ebeveyn tema yerini dönecektir 'stil' fonksiyonları.

Bu işlevler ile biten işlevler arasındaki farka dikkat edin _uri- bunlar mutlak sunucu yolunu (ör. /home/example/public_html/wp-content/yourtheme), Oysa _uriişlevler genel adresi (aka URL) - ör. http://example.com/wp-content/themes/yourtheme.


peki ya (TEMPLATEPATH. '/myGallery/gallery_functions_include.php'); bu da üst dizine gider
Elroy Fernandes

@ElroyFernandes Bunu cevabıma ekledim. STYLESHEETPATH ​​yerine istediğiniz sabittir
Tim Malone

2
Sadece RTM demek yerine soruyu cevapladığınız için teşekkür ederiz. Bu benim arama sonuçlarımda ilk ortaya çıktı.
rinogo

2
WordPress 'parçasında İyi cevap ama kötü adlandırma - bu vb içerir, bu JS için var, sadece stil için varlıkları değil
Paul Feakins

1
@PaulFeakins WordPress'teki tutarsızlıkları adlandırmaya başlama - bu, kimin nerede olduğunu bilen uzun ve rüzgarlı bir yoldur! ;)
Tim Malone

0

Özel temalarınızı, aktif tema tarafından kontrol edilmeyenleri, bir alt klasöre taşımalısınız.

Temayı tüm özelleştirilmiş dosyalardan ayrı tutun; bu şekilde, özel çalışmanızı kaybetmeden, tema güncellenebilir.

Kullanıma hazır temanız burada yaşıyor
------------------------------------
\\ Sitenin \ wp-content \ temaların \ some_theme
Çocuk temanız burada yaşıyor
---------------------------
\\ Sitenin \ wp-content \ temaların \ some_theme-çocuk

Özel stilleriniz ve şablonlarınız ve tüm içerikleriniz (özel javascript, WP'ye kaydedilmemiş görüntüler, özel yazı tipleri, json veri dosyaları ve dile getirebileceğiniz tüm eklentiler gibi) temanın alt klasörüne taşınmalıdır.

\ Temaların \ some_theme
\ themes \ some_theme-child \ (burada tüm özel php şablon dosyalarınız)
\ Temalar \ some_theme-çocuk \ görüntüleri
\ Temalar \ some_theme-çocuk \ içerir 
\ Temalar \ some_theme-çocuk \ diller
\ Temaların \ some_theme-çocuk \ json 
\ Temalar \ some_theme-çocuk \ tarzı

Özel stil sayfalarınız için ( tema geçersiz kılınan stil.css değil ) wp_enqueue_style ('some-css', get_stylesheet_directory () . '/Style/some.css', false, '0.0.1', 'all');

Xhr çağrıları, vb. İle get_stylesheet_directory_uri () kullanın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.