web-dev-qa-db-ja.com

今期のIDを取得する

次のコードを使用して、子の分類法の配列を取得し、それらを順不同リスト内のリンクで書き出します。

    <?php
$termID = 10;
$taxonomyName = "products";
$termchildren = get_term_children( $termID, $taxonomyName );

echo '<ul>';
foreach ($termchildren as $child) {
    $term = get_term_by( 'id', $child, $taxonomyName );
    echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
?>

私が達成しようとしているのは私が$ termIDに置き換えることができるように実際の用語(カテゴリ)IDを取得することです、そして用語のIDをハードコードする必要はありません。

任意の助けは親切に評価されるでしょう!

ありがとうございます。

2
Rise

これは私がsubtermsをリストするのに使う関数です:

/**
 * Lists all subentries of a taxonomy.
 *
 * @return void
 */
function ttt_get_subterms( $args = array () )
{
    if ( ! isset ( get_queried_object()->taxonomy ) )
    {
        return;
    }

    $options = array (
        'child_of'           => get_queried_object_id()
    ,   'echo'               => 0
    ,   'taxonomy'           => get_queried_object()->taxonomy
    ,   'title_li'           => FALSE
    ,   'use_desc_for_title' => FALSE
    );

    $settings = array_merge( $options, $args );

    $subtermlist = wp_list_categories( $settings );

    // Without results WP creates a dummy item. It doesn't contain links.
    ! empty ( $subtermlist ) and FALSE !== strpos( $subtermlist, '<a ' )
        and print "<ul class=subterms>$subtermlist</ul>";
}

wp_list_categories() のように使います。

get_term_by()を避けます。それはとても高価で、必要ではありません。

5
fuxia

現在の用語を取得するにはget_query_var( 'term' );を使用し、現在の分類法を取得するにはget_query_var( 'taxonomy' )を使用することができます。これにより、次のようなことができます。

$term_slug = get_query_var( 'term' );
$taxonomyName = get_query_var( 'taxonomy' );
$current_term = get_term_by( 'slug', $term_slug, $taxonomyName );
$termchildren = get_term_children( $current_term->term_id, $taxonomyName );

echo '<ul>';
foreach ($termchildren as $child) {
    $term = get_term_by( 'id', $child, $taxonomyName );
    echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
1
Bainternet

または、 term_exists ($ term、$ taxonomy、$ parent)を使用することもできます。

$term_id = term_exists( $term_name );

参照してください WordPressコーデックス

特定の用語が存在するかどうかを確認し、用語IDを返す

分類法が指定されておらず、用語が存在する場合は、用語IDを返します。

0
Alex

現在の用語IDを取得するには、 を使用します

$term_id = get_queried_object()->term_id;

get_query_varは公開されているvarの list には含まれていないため、この場合は term_id を使用することはできません。

0
The J