如何在Wordpress中列出带有特定标签的所有条目?

时间:2020-03-05 18:44:23  来源:igfitidea点击:

我可能只是缺少此功能,但是没有人知道是否有可用的小部件:

我需要列出与给定标签关联的所有条目的主题。

例如:我有5篇标签为"教程"的文章,我希望看到如下列表:

  • 教程1:安装应用
  • 教程2:自定义
  • 教程3:高级编辑
  • 教程4:用户管理

这样的功能是否已经存在于wordpress中了?

解决方案

回答

如果我们对WP黑客感到满意,则可以尝试使用wp_list_pages,http://codex.wordpress.org/Template_Tags/wp_list_pages将其添加到侧边栏中。

或者有诸如Simple-Tags(http://wordpress.org/extend/plugins/simple-tags/)之类的插件可以管理标签。

关于WordPress的好处是,有许多可用的插件可以添加基本应用程序不具备的功能,可以快速搜索选项卡的插件(http://wordpress.org/extend/plugins/search。 php?q = tag)返回了一个完整的列表,请确保有很多内容值得挖掘,但这也可以查看可用的内容。

回答

因此,我找到了有关使用自定义查询的文章。我修改了脚本以提取特定标记,在本例中为"开源"。

<?php 
$querystr = "SELECT wposts.* 
             FROM $wpdb->posts wposts, $wpdb->terms wterms, $wpdb->term_relationships wterm_relationships, $wpdb->term_taxonomy wterm_taxonomy 
             WHERE wterm_relationships.object_id = wposts.ID 
             AND wterm_relationships.term_taxonomy_id = wterm_taxonomy.term_taxonomy_id 
             AND wterms.term_id = wterm_taxonomy.term_id 
             AND wterm_taxonomy.taxonomy = 'post_tag' 
             AND wterms.name = 'Open Source' 
             AND wposts.post_status = 'publish' 
             AND wposts.post_type = 'post' 
             ORDER BY wposts.post_date DESC";

     $pageposts = $wpdb->get_results($querystr, OBJECT);

?>

    <?php if ($pageposts): ?>
         <?php foreach ($pageposts as $post): ?>
             <?php setup_postdata($post); ?>

             <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title('<li>', '</li>'); ?></a>
         <?php endforeach; ?>
    <?php else : ?>

    <?php endif; ?>

如果我们只想列出一个特定标签的页面,则可以使用。但是,假设我们想根据页面上列出的当前文章列出每个标签的页面列表。

我们可以在The Loop中使用get_the_tags()函数创建一个包含所有标签的数组,然后使用该数组为查询动态生成WHERE语句。