这个功能是否内置于wordpress中?我没有看到代码内的任何内容。
codex.wordpress.org/Function_Reference/wp_tag_cloud
我有几个特定于类别的页面,我想显示与这些帖子相关的所有标签。
我确实找到了这个,但我不确定它是否正确或是否存在更好的方法(source)(旧方法!!!! ):
<?php
query_posts('category_name=html');
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags_arr[] = $tag -> name;
}
}
endwhile; endif;
$tags_arr = array_unique($all_tags_arr);
?>
<ul>
<?php
foreach($tags_arr as $tag){
echo '<li>'.$tag.'</li>';
}
?>
</ul>
<?php wp_reset_query(); ?>
更新(简化):::
从特定类别制作标签列表,这段代码要好得多(只需更改类别名称):
::由于循环错误::
,最近再次更新 <ul>
<?php
query_posts('category_name=html');
if (have_posts()) : while (have_posts()) : the_post();
if( get_the_tag_list() ){
echo $posttags = get_the_tag_list('<li>','</li><li>','</li>');
}
endwhile; endif;
wp_reset_query();
?>
</ul>
即使很难我可能有解决方案,如果有新的解决方案,请更新。
答案 0 :(得分:2)
我认为你发现它的方法是你实现所需目标的唯一方法。 也许你可以修改一些行,但概念是正确的。
目前我认为没有办法过滤标签,就像使用核心wordpress功能一样。
答案 1 :(得分:2)
我没有得到上面的代码来处理我的WordPress安装。然而,我确实设法调整它直到它工作。这是我的调整:
$catid = get_cat_ID(single_cat_title("",false));
$catobj = get_category($catid);
$catslug = $catobj->slug;
$all_tags_arr = array();
query_posts('category_name='.$catslug);
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags_arr[] = $tag -> term_id;
}
}
endwhile; endif;
$tags_arr = array_unique($all_tags_arr);
$tagcloud_args = array(
'include' => implode(',',$tags_arr),
);
wp_tag_cloud( $tagcloud_args );
wp_reset_query();
答案 2 :(得分:2)
这是一个更简单的例子....只需更改类别名称,然后嘿就完成了。相关标签将以列表格式打印出来。
<?php query_posts('category_name=html'); if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags[] = $tag -> name;
}
}
endwhile; endif;
//This snippet removes any duplicates.
$tags_unique = array_unique($all_tags);
echo '<ul>';
foreach($tags_unique as $unique) {
echo '<li>'.$unique.'</li>';
}
echo '</ul>';
wp_reset_query();
?>
答案 3 :(得分:0)
首先,安装ACF插件并创建一个分类字段。在将下面的代码添加到要显示标签的位置之后。
$queriedObj = get_queried_object();
$taxonomy = $queriedObj->taxonomy;
$term_id = $queriedObj->term_id;
$current_tags = get_field('category_tags', $taxonomy . '_' . $term_id); //category_tags = ACF fieldname
if ( $current_tags ) {
echo '<ul>';
foreach ( $current_tags as $term ) {
echo '<li>';
echo '<a href="/product-tag/' . $term->slug . '">';
echo $term->name;
echo '</a>';
echo '</li>';
}
echo '</ul>';
}
else{
echo '<ul>';
echo '<li>No Tag.</li>';
echo '</ul>';
}