get_the_term_list ที่ไม่มีลิงก์ใน 3.1


13

ฟังก์ชันใดที่จะแสดง taxonomies แบบกำหนดเองที่เกี่ยวข้องกับโพสต์เป็นข้อความ

ขณะนี้ฉันใช้ get_the_term_list ซึ่งใช้งานได้ดีกับหน้าเอกพจน์ แต่ไม่มากนักเมื่อใช้ taxonomy ในแท็ก title ที่เก็บถาวร - postype.php

คำตอบ:


15

wp_get_object_terms () ส่งคืนข้อกำหนดที่เกี่ยวข้องกับวัตถุ (เช่นโพสต์หรือหน้าหรือโพสต์ที่กำหนดเอง) เป็นข้อความ (โดยปกติจะอยู่ในอาร์เรย์)

จากหน้า Codex สำหรับ wp_get_object_terms ()

$productcategories = wp_get_object_terms($post->ID, 'productcategories');


get_the_terms()โปรดทราบว่าผลการค้นหาจะไม่เก็บไว้ชั่วคราวเช่น ดูหน้า codexสำหรับข้อมูล
Dylan

22

อย่างไรก็ตาม@anuถูกต้องฉันคิดว่าคุณสามารถเรียกฟังก์ชัน php strip_tagsเพื่อดึงแท็กของค่าที่ส่งคืน

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );

ดูเรียบง่ายและทำงานได้ดี มีข้อเสียในการใช้สิ่งนี้หรือไม่?
Mohsin

@Mohsin ข้อเสียอย่างหนึ่งคือมันแยกแท็กทั้งหมดออกไม่ใช่แค่แท็ก <a> อย่างไรก็ตามคุณสามารถป้องกันแท็กที่ต้องการไม่ให้ถูกปล้นได้เช่น:$terms = strip_tags( $terms, '<li>' );
เดวิด

2

ฉันคิดว่าวิธีที่ดีที่สุดคือการใช้ตัวกรองสำหรับรายการคำที่แยกผ่าน regexp เฉพาะข้อความจากรายการ

get_the_terms_list () ถูกนำมาใช้ที่นี่: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-includes/category-template.php#L948

 $term_links = apply_filters( "term_links-$taxonomy", $term_links );

คุณสามารถใช้ตัวกรองของคุณเอง


1
$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

ที่นี่ $ terms เป็นอาร์เรย์ดังนั้นคุณจึงสามารถใช้ foreach loop ได้

foreach( $terms as $term ) {
  echo $term;
}

0

ฉันต้องการโซลูชัน Zack แบบเดียวกันและลองใช้งานได้ดี ตัวอย่างเช่นหากคุณต้องการเพียงแค่คำที่จะใส่ใน css id หรือ class มีเพียงหนึ่งคำอธิบายประกอบเกี่ยวกับการแก้ปัญหาฟังก์ชั่นไม่ดีเรียกว่าอย่างถูกต้องคือ "get_the_term_list"

ฉันแสดงตัวอย่างของฉัน:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.