身思乐,人事爱,稳恒不言败!

WordPress纯代码:自动获取文章第一张图片作为特色图片的实现方式

请将下面贴出的代码复制一下,然后粘贴到你当前WordPress主题的模板函数(functions.php)文件中保存即可。

function autoset_featured() {
    global $post;
    $already_has_thumb = has_post_thumbnail($post->ID);
    // 判断是否已设置特色图片,若是不存在则获取第一张图片
    if (!$already_has_thumb)  {
        // 获取对应文章ID的图片附件
        $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
        // 判断文章对应的图片附件是否存在
        if ($attached_image) {
            foreach ($attached_image as $attachment_id => $attachment) {
                // 设置特色图像
                set_post_thumbnail($post->ID, $attachment_id);
            }
        }
    }
}
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');

需要注意的是,文章中必须要有图片才能获取到图片作为特色图像,若是没有的话那就没办法了。