要根据当前文章的分类获取分类中的上一篇和下一篇文章,您可以使用WordPress的内置函数get_adjacent_post()
结合get_previous_post()
和get_next_post()
函数。以下是实现这一功能的步骤:
- 获取当前文章的分类:
$categories = get_the_category(); // 获取当前文章的分类
$category_ids = array(); // 存储分类ID
foreach ($categories as $category) {
$category_ids[] = $category->term_id;
}
- 获取上一篇文章:
$prev_post = get_previous_post(true, $category_ids); // 获取上一篇文章
if ($prev_post) {
// 上一篇文章存在
$prev_title = $prev_post->post_title; // 上一篇文章的标题
$prev_link = get_permalink($prev_post->ID); // 上一篇文章的链接
} else {
// 上一篇文章不存在
$prev_title = __('No previous post', 'text-domain'); // 自定义提示文本
$prev_link = '#'; // 或其他自定义链接
}
- 获取下一篇文章:
$next_post = get_next_post(true, $category_ids); // 获取下一篇文章
if ($next_post) {
// 下一篇文章存在
$next_title = $next_post->post_title; // 下一篇文章的标题
$next_link = get_permalink($next_post->ID); // 下一篇文章的链接
} else {
// 下一篇文章不存在
$next_title = __('No next post', 'text-domain'); // 自定义提示文本
$next_link = '#'; // 或其他自定义链接
}
在上述代码中,我们首先使用get_the_category()
函数获取当前文章的分类。然后,使用get_previous_post()
和get_next_post()
函数分别获取上一篇和下一篇文章的对象。通过判断返回的对象是否存在,我们可以获取它们的标题和链接。
请将上述代码片段放置在适当的位置,例如在单篇文章的循环中,以便根据当前文章的分类显示上一篇和下一篇文章的链接。同时,您可以根据需要自定义提示文本和链接,以满足您的具体需求。