此功能是否内置在WordPress中?我没有看到法典中的任何内容。

codex.wordpress.org/function_reference/wp_tag_cloud

我有一些特定类别的页面,我想显示与这些帖子相关的所有标签。

我确实找到了这个,但是我不确定它是否正确或是否存在更好的方式(资源)(旧方法!):

<?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>

即使很艰难,我也可能有一个解决方案,如果新的问题出现,请更新此信息。

有帮助吗?

解决方案

我认为您发现的方法是实现所需的唯一方法。也许您可以修改一些行,但是概念是正确的。

目前,我认为没有一种方法可以像使用Core WordPress函数那样过滤标签。

其他提示

我没有得到上面的代码来处理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();

这是一个简单的例子。...只需更改类别名称,嘿,您完成的。关联的标签将以列表格式打印出来。

<?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();

?>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top