显示具有相同特定meta_key元_值的帖子计数

时间:2014-02-14 作者:Macxim

我想显示按特定meta\\u键排序的帖子列表。我的帖子有以下自定义字段:author_lastnameauthor_firstname.到目前为止,效果很好。立柱显示正确。我的问题是:

        <?
        $category = $wp_query->get_queried_object();
        $query = new WP_Query(
            array (
                \'post_type\' => \'post\',
                \'cat\' => $category->cat_ID,
                \'posts_per_page\' => -1,
                \'orderby\'   => \'author_lastname\',
                \'meta_key\' => \'author_lastname\',
                \'meta_key\' => \'author_firstname\',
                \'order\' => \'ASC\'
            )
        );

        if ( $query->have_posts() ) :
            while ( $query->have_posts() ) : $query->the_post(); ?>
                <li><a href="<?php the_permalink(); ?>"><?php echo get_field(\'author_lastname\') . \', \' . get_field(\'author_firstname\') . \' (\' . count($query) . \')\'; ?></a></li>
            <?
            endwhile;
            wp_reset_query();
        endif;
        ?>
现在,让我们假设两篇文章有相同的作者(在author_firstnameauthor_lastname).

我将得到以下结果:

Einstein, Albert (1)
Einstein, Albert (1)
Tesla, Nikola (1)
这不是我想要的。我怎么能得到这个?

Einstein, Albert (2)
Tesla, Nikola (1)
提前感谢您的帮助!

1 个回复
SO网友:gdaniel

这里有一个简单的方法来实现分类法所需的功能。

你应该有

注册了一个名为Authors的分类法阿尔伯特·爱因斯坦3。您只需要帖子总数现在,您要检索所有具有taxonomy=作者的帖子,并打印每个作者的姓名以及该作者的帖子数量。

//Get all authors that have been assigned to a post
$authors = get_terms("authors");

//You can use print_r to see the values in the array
echo "<pre>";
//print_r($authors);
echo "</pre>";

//Loop through each author
foreach($authors as $author){

        //Search posts with the author name
    $query = new WP_Query(array(

        "post_type"=>"post", 
        \'tax_query\' => 
            array(
                array(
                    \'taxonomy\' => \'authors\',
                    \'field\' => \'term_id\',
                    \'terms\' => $author->term_id
                )
            )

        ));

    echo "<h2>Found " . $query->found_posts . " posts with author = " . $author->name . "</h2>";

}
您可以根据需要格式化输出。Wordpress自动创建链接结构(取决于永久链接的设置方式)。所以你只需要为wordpress创建的链接创建模板。

更新时间:

我假设当你转到/作者/爱因斯坦·阿尔伯特时,你已经可以看到所有带有爱因斯坦·阿尔伯特这个词的帖子了。

如果是这样,您只需要使用foreach循环中的对象来形成链接:

foreach循环中应该有类似的内容:

echo "<a href=\'/" . $author->taxonomy . "/" . $author->slug . "\'>$author->name ($query->found_posts)</a>";

That should echo <a href="/author/einstein-albert">Albert Einstein(2)</a>

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post