ดังที่รายงานไว้ในข้อเสนอแนะเทมเพลตของ Drupal 7 คำแนะนำเทมเพลตที่ใช้โดยค่าเริ่มต้นจาก Drupal 7 สำหรับหน้าคือหน้า - [front | internal / path] .tpl.php
สำหรับหน้าเว็บที่สามารถดูได้ที่http://www.example.com/node/1/edit Drupal จะค้นหาไฟล์เทมเพลตต่อไปนี้:
- หน้า - โหนด - edit.tpl.php
- หน้า - โหนด - 1.tpl.php
- หน้า - node.tpl.php
- page.tpl.php
หากต้องการเพิ่มคำแนะนำพิเศษธีมของคุณควรใช้template_preprocess_page ()และเพิ่มคำแนะนำใหม่ใน$variables['theme_hook_suggestions']
( $variables
คือตัวแปรที่ส่งผ่านโดยอ้างอิงถึงฟังก์ชัน)
หากคุณทำเช่นนั้นเหตุผลเดียวที่ไฟล์เทมเพลตที่แนะนำนั้นไม่ได้ถูกใช้งานคือไฟล์นั้นมีชื่อไม่ถูกต้อง: ในกรณีที่หน้าแสดงหน้าหนังสือตัวอย่างเช่นไฟล์เทมเพลตควรเป็นหน้า - book.tpl .php คุณสามารถเปลี่ยนรหัสสำหรับธีมของคุณและปล่อยให้มันใช้หน้า - แม่แบบ node-type.tpl.php หากไม่พบแม่แบบเช่นหน้า - book.tpl.php
หากต้องการแจ้งให้ทราบด้วยว่าในtheme_get_suggestions () (ซึ่งเป็นฟังก์ชันที่เรียกใช้โดยtemplate_preprocess_page () ) ยัติภังค์จะถูกแทนที่ด้วย_
และไม่ใช่ในทางกลับกัน เหตุผลที่ทำมีการอธิบายในความคิดเห็นที่รายงานในรหัสฟังก์ชั่น
// When we discover templates in drupal_find_theme_templates(),
// hyphens (-) are converted to underscores (_) before the theme hook
// is registered. We do this because the hyphens used for delimiters
// in hook suggestions cannot be used in the function names of the
// associated preprocess functions. Any page templates designed to be used
// on paths that contain a hyphen are also registered with these hyphens
// converted to underscores so here we must convert any hyphens in path
// arguments to underscores here before fetching theme hook suggestions
// to ensure the templates are appropriately recognized.
$arg = str_replace(array("/", "\\", "\0", '-'), array('', '', '', '_'), $arg);