删除 wp_list_categories 列表中的 link
Remove link in wp_list_categories list
我正在使用以下代码显示我的分类 "fachbereiche" 的分层列表:
$args = array(
'taxonomy' => 'fachbereiche',
'orderby' => 'name',
'title_li' => '',
'feed_type' => '',
'child_of' => 12
);
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
显示的列表几乎不错,唯一的问题是每个分类列表项都包装在一个 link 标签中,并且 links 到分类的单个页面(我不'拥有和想要)。如何防止列表被包装在 a 标签中?
The output of the list in the frontend
你要的是get_term_children().
<?php
$term_id = 12;
$taxonomy_name = 'fachbereiche';
$termchildren = get_term_children( $term_id, $taxonomy_name );
echo '<ul>';
foreach ( $termchildren as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
echo '<li>' . $term->name . '</li>';
}
echo '</ul>';
?>
虽然上面的答案 "sorta" 有效,但它实际上不是 "removing" 链接,而是创建您自己的输出。
要真正删除链接,您可以这样做:
function smyles_strip_a_tags_from_wp_list_categories( $output, $args ) {
return strip_tags( $output, '<ul><li>' );
}
add_filter( 'wp_list_categories', 'smyles_strip_a_tags_from_wp_list_categories', 9999, 2 );
$args = array(
'taxonomy' => 'fachbereiche',
'orderby' => 'name',
'title_li' => '',
'feed_type' => '',
'child_of' => 12
);
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
<?php
remove_filter( 'wp_list_categories', 'smyles_strip_a_tags_from_wp_list_categories', 9999 );
要点是我们在调用 wp_list_categories
之前在 wp_list_categories
上添加一个过滤器来调用我们的函数,该函数去除除 <ul>
和 [=14 之外的所有标签=] 标签(基本上删除链接),然后我们在输出后删除该过滤器。
我正在使用以下代码显示我的分类 "fachbereiche" 的分层列表:
$args = array(
'taxonomy' => 'fachbereiche',
'orderby' => 'name',
'title_li' => '',
'feed_type' => '',
'child_of' => 12
);
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
显示的列表几乎不错,唯一的问题是每个分类列表项都包装在一个 link 标签中,并且 links 到分类的单个页面(我不'拥有和想要)。如何防止列表被包装在 a 标签中?
The output of the list in the frontend
你要的是get_term_children().
<?php
$term_id = 12;
$taxonomy_name = 'fachbereiche';
$termchildren = get_term_children( $term_id, $taxonomy_name );
echo '<ul>';
foreach ( $termchildren as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
echo '<li>' . $term->name . '</li>';
}
echo '</ul>';
?>
虽然上面的答案 "sorta" 有效,但它实际上不是 "removing" 链接,而是创建您自己的输出。
要真正删除链接,您可以这样做:
function smyles_strip_a_tags_from_wp_list_categories( $output, $args ) {
return strip_tags( $output, '<ul><li>' );
}
add_filter( 'wp_list_categories', 'smyles_strip_a_tags_from_wp_list_categories', 9999, 2 );
$args = array(
'taxonomy' => 'fachbereiche',
'orderby' => 'name',
'title_li' => '',
'feed_type' => '',
'child_of' => 12
);
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
<?php
remove_filter( 'wp_list_categories', 'smyles_strip_a_tags_from_wp_list_categories', 9999 );
要点是我们在调用 wp_list_categories
之前在 wp_list_categories
上添加一个过滤器来调用我们的函数,该函数去除除 <ul>
和 [=14 之外的所有标签=] 标签(基本上删除链接),然后我们在输出后删除该过滤器。