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

时间:2008-08-28 14:10:52

标签: wordpress widget

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

或者有简单标记(http://wordpress.org/extend/plugins/simple-tags/)等插件可以帮助您管理标记。

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

答案 1 :(得分:1)

所以我发现了一篇关于使用custom queries的文章。我修改了脚本以提取特定标记,在本例中为“开源”。

<?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语句。

答案 2 :(得分:0)

您可以根据一组参数轻松使用get_posts创建帖子数组。它会检索符合此条件的近期帖子或帖子列表。

在您的情况下,我想通过创建一个简短的代码来展示如何在特定代码(在您的情况下,教程)中显示您的帖子,该代码可以在您网站中的任何地方轻松使用。

在你的functions.php中

function shortcode_tag_t (){
     $uu_id=get_current_user_id();
     $args = array(
    'posts_per_page'   => 10,
    'tag' => 'Tutorial',
    'post_type'        => 'post',
    'post_status'      => 'publish'
);
$posts_array = get_posts( $args );

foreach ( $posts_array as $post ) : setup_postdata( $post );
$url=$post->guid;
echo"<li><a  href='".$url."'>" .$post->post_title."</a></li>";
endforeach; 
wp_reset_postdata();
}
add_shortcode('your_shortcode_name',shortcode_tag_t );

现在您有10个帖子在Tutorial下标记的列表。

在您想要显示列表的位置回显创建的短代码。