WordPress 自动设置特色图像缩略图

Mr.Wu 164 0

前言

自从博客启用了公众号之后,一直在测试各方面功能,今天发现公众号在文章有图片的情况下,却不显示图片

经过测试发现,不是插件本身的问题,而是我文章没有设置特色图形所以公众号查询到的文章没有图片显示

WordPress 自动设置特色图像缩略图

将以下代码复制到 functions.php 文件末尾,就能实现 WordPress 自动设置特色图像缩略图并且如果没有图片,就选取媒体库一张图片的功能。

/* 自动添加特色图像 http://zmingcx.com/automatically-adds-the-characteristic-images.html */
function wpforce_featured() {
    global $post;
    $already_has_thumb = has_post_thumbnail($post->ID);
    if (!$already_has_thumb)  {
        $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);
            }
        } else {
            set_post_thumbnail($post->ID, '56');//指定媒体库一张图片的 id
        }
    }
}  //end function
add_action('the_post', 'wpforce_featured');
add_action('save_post', 'wpforce_featured');
add_action('draft_to_publish', 'wpforce_featured');
add_action('new_to_publish', 'wpforce_featured');
add_action('pending_to_publish', 'wpforce_featured');
add_action('future_to_publish', 'wpforce_featured');

查看后台文章列表,缩略图是否成功

公众号在次查看是否有图像

可以看到,所有文章全部都有图像了。

扩展

因为我的主题文章列表缩略图代码不一样,所以添加上面的代码导致列表缩略图模糊错乱,我的主题不能直接用上面的代码,需要改一改,不过在改之前我得删除掉所有文章的特色图像设置才行

附删除所有文章特色图像的方法

/**
 * WordPress 批量删除所有文章的特色图像
 * https://www.wpdaxue.com/bulk-remove-featured-images-from-posts.html
 */
global $wpdb;
$attachments = $wpdb->get_results( "
	SELECT * 
	FROM $wpdb->postmeta 
	WHERE meta_key = '_thumbnail_id'
	" );
foreach ( $attachments as $attachment ) {
	wp_delete_attachment( $attachment->meta_value, true );
}
$wpdb->query( "
	DELETE FROM $wpdb->postmeta 
	WHERE meta_key = '_thumbnail_id'
	" );

保存上面的代码到 functions.php 中,然后访问后台查看文章列表特色图像是否删除,如果以删除,那么需要在删掉刚才添加的这段代码。

广告

打赏
发表评论 取消回复
表情 图片 链接 代码

分享
微信
微博
QQ