我们大多数 WordPress 站点的文章上下篇都是只显示相应的标题而已,因为我们大多数主题都是直接使用 WordPress 官方提供的 previous_post_link() 与 next_post_link() 这两个函数标签来制定当前文章的上下篇文章。如果想要上下篇实现带有特色图像,我们应该如何实现呢?
1、自定义一个获取特色图像的函数
WordPress 的 get_the_post_thumbnail 函数只能获取文章的特色图像,如果文章没有特色图像的话就没有图像显示,这样看起来会很别扭,所以我们需要重新定义一个函数:存在特色图像就显示特色图像,不存在特色图像就显示文章第一张图片;文章没有特色图像和图片的情况下,就显示随机问题。
将以下代码添加到当前主题的 functions.php 文件即可
//上下篇缩略图
function ygj_catch_image($id){
if (has_post_thumbnail($id)) { echo get_the_post_thumbnail( $id, \'\', \'\' );
} else {
$first_img = \'\';
ob_start();
ob_end_clean();
$output = preg_match_all(\'//i\', get_post( $id )->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$random = mt_rand(1, 10);
$first_img= get_bloginfo ( \'stylesheet_directory\' ).\'/images/random/\'.$random.\'.jpg\';
}
echo \'post_title.\'\" />\';
}
}
其中随机图片是放在当前使用主题的 /images/random/ 文件夹下面,后缀名是 .jpg,总共 10 张图片,命名为 1、2、3、…、10。
2、在 single.php 文件的适当位置添加以下代码:
$current_category = get_the_category();//获取当前文章所属分类ID
$prev_post = get_previous_post($current_category,\'\');//与当前文章同分类的上一篇文章
$next_post = get_next_post($current_category,\'\');//与当前文章同分类的下一篇文章
?>