听起来您想从同一作者撰写的当前帖子的相同类别中获取相关帖子。为此,您需要使用WP_Query 类,其外观如下所示:
$author_id = get_the_author();
$category_id = get_the_category();
$args = array(
\'author\' => $author_id,
\'category\' => $category_id[0],
\'posts_per_page\' => 5,
);
$rel_posts = new WP_Query( $args );
if( $rel_posts->have_posts() ) {
echo \'<div class="related-posts">\' . PHP_EOL;
echo \'<ul>\' . PHP_EOL;
while ( $rel_posts->have-posts() ) {
echo \'<li class="related-post"><a href="\' . esc_url( get_the_permalink() ) . \'>\' . esc_html( get_the_title() ) . \'</a></li>\' . PHP_EOL;
}
echo \'</ul>\';
// Reset Post Data
wp_reset_postdata();
} else {
// No Posts Found
}
}
此代码的作用是从当前帖子中获取作者ID以及帖子的类别数组(注意:
get_the_category()
即使只分配了一个数组,也将始终返回一个数组。它将返回ID、名称和Slug)。
然后我们将其输入$args
数组使用$category_id[0]
获取数组中第一个类别的ID。出于演示目的,我还告诉查询只获取5篇帖子。
然后,它将打开一个无序列表,并在找到的posts WP\\U查询中循环,并为每个包含链接的列表项创建一个列表项。完成后,我们关闭无序列表,并将post数据重置回原始数据。
注意:您可以使用. PHP_EOL
部分echo
声明。这只是在末尾添加了一个换行符,我喜欢这样做,以便于诊断,因此生成的HTML代码更易于阅读。