由特定类别制作的标签列表 - wordpress

发布于 2024-10-23 13:43:15 字数 1514 浏览 0 评论 0原文

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>

即使很难,我也可能有解决方案,如果出现新解决方案,请更新此解决方案。

Is this feature built into wordpress? i didnt see anything within the codex.

codex.wordpress.org/Function_Reference/wp_tag_cloud

I have a few pages that are category specific and i would like to show all the tags associated with those posts.

I did find this, but im not sure if its proper or if a better way exists (source)(old method!!!!):

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

UPDATE( simplified ):::

to make a list of tags from a specific category this code is much better(just change the category name):

::Recently updated again because of a loop error::

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

Even tough i may have a solution, please update this if a new one comes around.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爺獨霸怡葒院 2024-10-30 13:43:15

我认为您找到的方法是实现您想要的目标的唯一方法。
也许你可以修改一些行,但这个概念是正确的。

目前我认为没有办法像使用核心 WordPress 功能一样过滤标签。

I think the method you've found it's the only way you can achieve what you're looking for.
Maybe you can modify some lines, but the concept is right.

at the moment i don't think there's a way to filter tags as you would using a core wordpress function.

む无字情书 2024-10-30 13:43:15

我没有获得上面的代码来运行我的 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();

I did not get the code above to work my installation of WordPress. I did however manage to tweak it until it worked. Here is my tweak:

$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();
花伊自在美 2024-10-30 13:43:15

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

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

?>

Here is a much easier example.... Just change the category name and hey presto your done. The associated tags will print out in a list format.

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

?>
吐个泡泡 2024-10-30 13:43:15

首先,安装 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>';
}

First of all, install the ACF plugin and create a taxonomy field. After adding this below code where you want to display the tags.

$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>';
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文