我想显示按特定meta\\u键排序的帖子列表。我的帖子有以下自定义字段:author_lastname
和author_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_firstname
和
author_lastname
).
我将得到以下结果:
Einstein, Albert (1)
Einstein, Albert (1)
Tesla, Nikola (1)
这不是我想要的。我怎么能得到这个?
Einstein, Albert (2)
Tesla, Nikola (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>