介绍目前WordPress文章自动设置特色图像的方法。WordPress的特色图像是一个很实用的功能,为每篇文章增加一个特色图像,可以使blog各个部分都更生动。比如首页每篇文章都有自己的缩略图,相关文章中用缩略图告诉用户这些文章的主题,或者在侧栏加一个特色文章功能,显示文章特色图像。
现在的情况是,发布的文章,并插入了图像后,不显示缩略图,原因是the_post_thumbnail
需要设置特色图像,而大多情况是懒得一一设置。
那么使用下面的代码吧,直接自动化为文章内的图像自动设置为特色图像
function sola_auto_featured_image() {
global $post;
if( has_post_thumbnail() ){
return;
}
preg_match('/<img\s[^>]*?class\s*=\s*[\'\"]([^\'\"]*?)[\'\"][^>]*?>/', $post->post_content, $matches);
$img_class = $matches[1] ?? false;
if( $img_class ){
preg_match('/wp-image-([\d]+)/', $img_class, $matchId);
$attachment_id = $matchId[1] ?? false;
if( $attachment_id ){
set_post_thumbnail($post->ID, absint($attachment_id) );
}
}
}
add_action('the_post', 'sola_auto_featured_image');
add_action('save_post_post', 'sola_auto_featured_image');
注意:add_action('the_post', 'sola_auto_featured_image')
会使这段代码在任何文章被加载时运行,比如archive页面,single post页面等等。好处是被人访问一段时间,你的所有文章就自动获得了特色图像,坏处就是对性能有影响。当你的特色图像设置的差不多时,应该将这一句注释掉。