วิธีรับชื่อ taxonomy โดยกระสุน?


22

ถ้าฉันรู้ว่าคำบุรพบทอนุกรมวิธานฉันจะได้รับชื่อของคำนั้นได้อย่างไร


คุณต้องการสร้างลิงก์ชื่อเรื่องหรือไม่?
xLRDxREVENGEx

คำตอบ:


38

get_term_byฟังก์ชั่นที่คุณกำลังมองหาอยู่ คุณจะใช้มันเช่น:

<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>

ซึ่งส่งผล$termให้เป็นวัตถุที่มีต่อไปนี้

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count

Codex ทำงานได้อย่างยอดเยี่ยมในการอธิบายฟังก์ชั่นนี้: http://codex.wordpress.org/Function_Reference/get_term_by


คุณชนะฉันมัน นี่คือสิ่งที่ฉันจะทำ
xLRDxREVENGEx

1
ถ้าคุณไม่มีทากอนุกรมวิธาน?
EkoJR

2

นี้จะให้คำตอบเมื่ออนุกรมวิธานไม่พร้อมใช้งาน / ไม่ทราบ

ในกรณีของฉันเมื่อใช้get_term_byมีบางกรณีที่มีเพียง Slug เทอม (ไม่มี ID Term หรือ Taxonomy) ซึ่งนำฉันมาที่นี่ อย่างไรก็ตามคำตอบที่ให้ไว้ไม่ได้ช่วยแก้ปัญหาของฉัน

วิธีแก้ปัญหาที่ว่างเปล่า $taxonomy

// We want to find the ID to this slug.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
    // If term object is returned, break out of loop. (Returns false if there's no object)
    if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
        break;
    }
}
$term_id = $term_object->name;

echo 'The Term ID is: ' . $term_id . '<br>';
var_dump( $term_object );

ผล

The Term ID is: 32
object(WP_Term)
  public 'term_id' => int 32
  public 'name' => string 'Example Term'
  public 'slug' => string 'example-term'
  public 'term_group' => int 0
  public 'term_taxonomy_id' => int 123
  public 'taxonomy' => string 'category'
  public 'description' => string ''
  public 'parent' => int 0
  public 'count' => int 23
  public 'filter' => string 'raw'

ดังต่อไปนี้แนวคิดรับอาร์เรย์ของ$taxonomiesวนรอบอาร์เรย์และ IF get_term_by()ส่งคืนการจับคู่จากนั้นแยกออกจากลูป foreach ทันที

หมายเหตุ:ฉันพยายามค้นหาวิธีเพื่อรับ taxonomy ที่เกี่ยวข้อง (ID หรือ Slug) จาก Term Slug แต่น่าเสียดายที่ฉันไม่พบสิ่งใดที่มีใน WordPress


0

ขอบคุณมันใช้งานได้สำหรับฉัน

ฉันสร้างฟังก์ชันและใช้งานซ้ำแล้วซ้ำอีกตามต้องการ

function helper_get_taxonomy__by_slug($term_slug){
    $term_object = "";
    $taxonomies = get_taxonomies();
    foreach ($taxonomies as $tax_type_key => $taxonomy) {
        // If term object is returned, break out of loop. (Returns false if there's no object);
        if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
            break;
        }else{
            $term_object = "Warn! Helper taxonomy not found.";
        }
    }
    return $term_object;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.