在wp_list_ategories中包括父项

时间:2019-04-04 作者:Joe Landry

我正在使用下面的脚本列出自定义分类法,但我仍然需要一个指向当前自定义分类法父级的链接以获得“All”链接。

现在链接显示为:

鞋子衬衫T恤

希望包含“全部”链接,以便显示为:

全鞋衬衫T恤

<?php       

$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) ); 
$children = get_term_children( $term->term_id, $term->taxonomy );
echo get_category_link( get_queried_object_id() );
if ( ! is_wp_error( $children ) && ! empty( $children ) ) {
wp_list_categories( \'taxonomy=\' . $term->taxonomy . \'&depth=1&show_count=0&title_li=\'. $title.\'&child_of=\' . $term->term_id );
} else {
wp_list_categories( \'taxonomy=\' . $term->taxonomy . \'&depth=1&show_count=0&title_li=&child_of=\' . $term->parent );
} ?>

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

试试这个,它对我很有效:

$term = get_queried_object();
$children = get_term_children( $term->term_id, $term->taxonomy );
$has_children = ( ! is_wp_error( $children ) && ! empty( $children ) );

// Has children, or no parent.
if ( $has_children || ! $term->parent ) {
    $parent =& $term; // reference to $term
// No children, but has parent.
} elseif ( $term->parent ) {
    // Get the term object (or data like name) using get_term().
    $parent = get_term( $term->parent );
}

echo \'<h3><a href="\' . esc_url( get_term_link( $parent ) ) . \'">\' . esc_html( $parent->name ) . \'</a></h3>\';
wp_list_categories( \'taxonomy=\' . $term->taxonomy . \'&depth=1&show_count=0&title_li=&child_of=\' . $parent->term_id );

Explanation/Notes:

<在分类法归档中,您应该使用get_queried_object() 获取。。查询的术语(&M);就像你访问一个帖子页面一样,get_queried_object() 会给你查询的帖子。

您可以使用get_term_link() 获取术语存档URL(例如。http://example.com/category/uncategorized).

我故意没有使用title_li 参数,因为您仅显示级别1的子级(即您设置depth 参数到1).

我使用了h3 标签,但您当然可以根据自己的喜好进行更改。:)