เปลี่ยนหัวเรื่องของหน้าใน Drupal 7 ตามเส้นทาง


8

ฉันต้องเปลี่ยนหัวเรื่องของหน้าใน Drupal 7 ตามเส้นทาง ไม่ควรใช้กับเนื้อหาทุกประเภท ฉันต้องเปลี่ยนส่วนหัวของชื่อเรื่องเป็นหน้าเฉพาะที่สร้างด้วยมุมมอง

ตัวอย่างเช่นฉันมีเว็บไซต์http://www.mysite.com

<title>My favorite website </title>

ฉันต้องการสำหรับหน้า:

http://www.mysite.com/test

<title> My test today </title>

http://www.mysite.com/examples

<title> My examples for share </title>

ขอบคุณ


ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "เปลี่ยนหัวเรื่องให้เป็นโหนดที่ระบุ" คุณช่วยอธิบายได้ไหม โมดูลทั่วไปสองตัวที่ช่วยในเรื่องนี้คือdrupal.org/project/pathautoและdrupal.org/project/auto_nodetitle คุณอาจลองดูพวกมันและถ้ามันใช้ไม่ได้ให้อธิบายว่ากรณีการใช้ของคุณแตกต่างจากโมดูลทั่วไปเหล่านี้อย่างไร ด้ามจับ.
Patrick Kenny

ฉันอ้างถึง "ชื่อส่วนหัว" ที่ปรากฏในเมตาแท็ก ชื่อที่แสดงในแท็บของเบราว์เซอร์ ขอบคุณ
cabita

คำตอบ:


11

นี่คือวิธีที่ฉันทำใน Drupal 7

ใน template.php:

function YOUR_THEME_preprocess_page(&$vars){
  $path = $_GET['q'];

  if (strpos($path,'YOUR_PATH_STRING') !== false) {
    drupal_set_title('YOUR_TITLE');
  }
}

ตัวอย่างเช่นหากเส้นทางของคุณคือ yoursite.com/boogabooga คุณจะต้องตั้งค่า'YOUR_PATH_STRING'เป็น 'boogabooga' และ'YOUR_TITLE'ทุกสิ่งที่คุณต้องการให้เป็นชื่อของหน้า


สิ่งนี้ใช้ไม่ได้กับ hook_preprocess_user_profile
Francisco Corrales Morales

สตริงที่จะเขียนเพื่อกำหนดเป้าหมายหน้า <front> คืออะไร
ดาวอังคาร

14

มันเสียงสำหรับชุดที่ จำกัด ของคุณของหน้าเว็บอาจจะดำเนินการTHEME_preprocess_html()และตรวจสอบเส้นทาง URL $vars['head_title']และแทนที่ ดูโพสต์บล็อกนี้เป็นตัวอย่าง: วิธีการตั้งชื่อหน้าเว็บที่กำหนดเองใน Drupal 7

หากคุณมีรูปแบบบางอย่างสำหรับชื่อหัวเรื่องให้ลองชื่อหน้า


ฉันเห็นโพสต์และฉันมีคำถามหากฉันต้องการกำหนด "ชื่อหัว" ให้กับเส้นทางที่เฉพาะเจาะจง ไม่ใช่ทุกเส้นทางจะมีชื่อเรื่องเหมือนกัน ตัวอย่างเช่นฉันต้องการmysite.com/test <title> คือ "การทดสอบของฉัน" และฉันมีหน้าอื่น ๆmysite.com/examplesฉันต้องการ <title> "ตัวอย่างสำหรับการแบ่งปัน" รหัสนี้มีประโยชน์สำหรับวัตถุประสงค์นี้หรือไม่? ฉันได้อัปเดตโพสต์แล้ว
cabita

โพสต์ของ @cabita Tenken ครอบคลุมกรณีการใช้งานของคุณ นอกจากสิ่งที่เขาพูดถึงแล้วคุณยังสามารถใช้โมดูลเมตาแท็ก ตัวเลือกทั้งหมด 3 ตัวช่วยให้คุณสามารถตั้งชื่อส่วนหัวสำหรับหน้าโหนดเฉพาะที่คุณต้องการโดยไม่ต้องสัมผัสส่วนที่เหลือ
Madis

ฉันลองใช้เมตาแท็กและอนุญาตให้เปลี่ยนส่วนหัวของชื่อสำหรับหน้าเฉพาะ แต่ไม่มีสำหรับหน้าเฉพาะที่สร้างโดยมุมมอง ฉันจะอัปเดตคำถามอีกครั้ง ฉันขอโทษ.
cabita

@cabita คุณลองใช้ชื่อหน้าด้วยหรือไม่ อย่างน้อยก็อ้างว่ามีการรวมมุมมอง หากสิ่งนี้ไม่ได้ผลคุณสามารถไปข้างหน้าและทำมันในโค้ด (มันเป็นเรื่องง่ายที่จะ จำกัด การเปลี่ยนแปลงเฉพาะบางหน้าโดยใช้ $ _GET ['q'] หรือarg ()เพื่อตรวจสอบเส้นทาง)
Madis

ฉันทำในรหัส คุณถูกต้องมันง่ายต่อการ จำกัด การเปลี่ยนแปลงเฉพาะบางหน้าโดยใช้ $ _GET ['q'] หรือ arg ()
cabita
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.