get_template_directory_uri ชี้ไปที่ธีมหลักไม่ใช่ธีมลูก


35

ปัญหาที่ฉันมีอยู่คือ get_template_directory_uri ชี้ไปที่ธีมหลักเช่น site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php

แต่ฉันต้องการให้ชี้ไปที่ธีมลูกของฉันซึ่งควรจะเป็น site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php

สิ่งที่ฉันใช้คือ include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');

คำตอบ:


70

get_template_directory_uri() จะส่งคืน URI ของธีมหลักปัจจุบันเสมอ

เพื่อให้ได้รูปแบบ URI get_stylesheet_directory_uri()เด็กแทนคุณจำเป็นต้องใช้

คุณสามารถค้นหาสิ่งเหล่านี้ได้ในเอกสารประกอบพร้อมกับรายการฟังก์ชั่นที่มีประโยชน์อื่น ๆ เพื่อรับตำแหน่งไดเร็กทอรีไดเร็กทอรีต่างๆ


หากคุณต้องการใช้ค่าคงที่TEMPLATEPATHจะคล้ายกับการโทรget_template_directory()(เช่นธีมหลัก) และSTYLESHEETPATHคล้ายกับการโทรget_stylesheet_directory()(เช่นธีมลูก)

ค่าคงที่เหล่านี้ถูกตั้งค่าโดยแกน WordPress ในwp-includes/default-constants.phpและโดยทั่วไปมีลักษณะเช่นนี้:

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

หากไม่มีธีมลูกฟังก์ชันทั้ง 'เทมเพลต' และ 'สไตล์ชีท' จะส่งคืนตำแหน่งธีมพาเรนต์

สังเกตความแตกต่างระหว่างฟังก์ชั่นเหล่านี้และฟังก์ชั่นที่ลงท้ายด้วย_uri- สิ่งเหล่านี้จะคืนค่าเส้นทางเซิร์ฟเวอร์แบบสัมบูรณ์ (เช่น. /home/example/public_html/wp-content/yourtheme) ในขณะที่_uriฟังก์ชั่นจะคืนค่าที่อยู่สาธารณะ (aka URL) - เช่น http://example.com/wp-content/themes/yourtheme.


สิ่งที่เกี่ยวกับรวม (TEMPLATEPATH. '/myGallery/gallery_functions_include.php'); อันนี้ก็ไปที่ไดเรกทอรีแม่
Elroy Fernandes

@ElroyFernandes ฉันได้เพิ่มสิ่งนี้ในคำตอบของฉัน STYLESHEETPATH ​​คือค่าคงที่ที่คุณต้องการแทน
ทิมมาโลน

2
ขอบคุณที่ตอบคำถามแทนที่จะพูด RTM สิ่งนี้จะปรากฏขึ้นก่อนในผลการค้นหาของฉัน
rinogo

2
คำตอบที่ดี แต่การตั้งชื่อไม่ดีในส่วนของ WordPress - มันไม่ได้เป็นเพียงสำหรับ stylesheets มันสำหรับ JS สินทรัพย์รวมถึงอื่น ๆ
Paul Feakins

1
@ PaulFeakins อย่าเริ่มต้นกับการตั้งชื่อที่ไม่สอดคล้องกันใน WordPress - นั่นคือถนนที่ยาวและลมแรงที่นำไปสู่การรู้ว่าใครอยู่ที่ไหน! ;)
ทิมมาโลน

0

คุณควรย้ายเทมเพลตที่กำหนดเองที่ไม่ได้ควบคุมโดยธีมที่ใช้งานอยู่ไปยังโฟลเดอร์ลูก

แยกธีมออกจากไฟล์ที่กำหนดเองทั้งหมดด้วยวิธีนี้สามารถอัปเดตธีมได้โดยไม่สูญเสียงานที่กำหนดเองของคุณ

ชุดรูปแบบของคุณออกจากกล่องอยู่ที่นี่
------------------------------------
wp-content \ รูปแบบ \ some_theme \\ เว็บไซต์ \
ธีมลูกของคุณอาศัยอยู่ที่นี่
---------------------------
\\ เว็บไซต์ \ wp-content \ รูปแบบ \ some_theme เด็ก

สไตล์และเท็มเพลตที่คุณกำหนดเองและรวมทั้งหมดของคุณ (เช่นจาวาสคริปต์ที่กำหนดเอง, รูปภาพที่ไม่ได้บันทึกไว้ใน WP, ฟอนต์ที่กำหนดเอง, ไฟล์ข้อมูล json และปลั๊กอินใด ๆ ที่คุณอาจเข้าคิว) ควรย้ายไปยังโฟลเดอร์ลูก

\ รูปแบบ \ some_theme
\ themes \ some_theme-child \ (ไฟล์เทมเพลต php ที่กำหนดเองทั้งหมดของคุณที่นี่)
\ รูปแบบ \ some_theme เด็ก \ ภาพ
\ รูปแบบ \ some_theme เด็ก \ รวมถึง 
\ รูปแบบ \ some_theme เด็ก \ ภาษา
\ รูปแบบ \ some_theme เด็ก \ JSON 
\ รูปแบบ \ some_theme เด็ก \ สไตล์

สำหรับหน้าสไตล์กำหนดเองของคุณ ( ไม่ใช่ style.css แทนที่ของชุดรูปแบบ ) จัดคิวด้วย wp_enqueue_style ('some-css', get_stylesheet_directory () . '/style/some.css', เท็จ, '0.0.1', 'all');

ใช้get_stylesheet_directory_uri ()กับการโทร xhr ของคุณเป็นต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.