WordPress函数get_previous_post()获取上一篇文章
在 WordPress CMS内容管理系统中,get_previous_post()是一个内置函数,它检索在相同帖子类型和相同分类术语(如果适用)中在当前帖子之前发布的上一篇帖子。它返回一个 WP_Post 对象,其中包含上一篇文章的详细信息,如果没有更多以前的文章,则返回 null。
推荐:什么是Trackback?WordPress怎么禁用Trackback
get_previous_post()函数基本语法
描述
检索与当前帖子相邻的上一篇帖子
用法
<?php get_previous_post( $in_same_cat, $excluded_categories ) ?>
参数
$in_same_term
( bool ) ( 可选) 帖子是否应属于同一类别。默认值:false
$excluded_terms
(int[]|string)(可选)要排除的分类ID。默认值: ”
$taxonomy
(string)(可选)分类法名称,如果 $in_same_term 为真。默认值:“category”
返回值
- 如果成功,则发布对象。
- 如果未设置全局$post,则为空。
- 如果不存在相应的帖子,则为空字符串。
get_previous_post()函数示例
链接到同一分类中的上一篇文章,文本标题为文章标题。(源文件可参考这里)
<?php
$prev_post = get_previous_post();
if (!empty( $prev_post )): ?>
<a href="<?php echo $prev_post->guid ?>"><?php echo $prev_post->post_title ?></a>
<?php endif ?>
推荐:WordPress函数get_adjacent_post()获取相邻文章
如何使用get_previous_post()
使用函数get_previous_post()
function my_prev_post_link() {
$post_id = get_the_ID();
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'date_query' => array(
array(
'before' => get_the_date('c', $post_id),
),
),
'posts_per_page' => 1,
);
$prev_post_query = new WP_Query($args);
if ($prev_post_query->have_posts()) {
while ($prev_post_query->have_posts()) {
$prev_post_query->the_post();
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
}
}
wp_reset_postdata();
}
使用MySQL查询来获取上一篇文章的信息:
<?php
global $wpdb;
$post_id = get_the_ID();
$prev_post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE ID < $post_id AND post_type = 'post' AND post_status = 'publish' ORDER BY ID DESC LIMIT 1");
if ($prev_post_id) {
$prev_post = get_post($prev_post_id);
echo '<a href="' . get_permalink($prev_post->ID) . '">' . $prev_post->post_title . '</a>';
}
?>
推荐:WordPress函数get_next_post()获取下一篇文章