在这里,在这个functions.php文件中,我试图做的是从我的文章内容中提取图像,实际上我使用的是内容中的image_url(提取第一个图像的这一部分工作正常,我已经测试过了)。问题是我不能使用URL上传图片并将其设置为featured_image,从而弹出“发布失败”。有没有人能帮帮我,或者你有别的办法?
function generate_post_featured_image($post_ID) {
$post = get_post($post_ID);
if (empty($post->featured_image)) {
// Find the first image URL in the post content
preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
if (isset($matches[1])) {
$image_url = $matches[1];
// Sideload the image and get the attachment ID
$attachment_id = media_sideload_image($image_url, $post_ID, null, 'id');
if (!is_wp_error($attachment_id) && !empty($attachment_id)) {
// Set the attachment ID as the featured image
set_post_thumbnail($post_ID, $attachment_id);
} else {
$error_message = $attachment_id->get_error_message();
echo 'Error sideloading image: ' . $error_message;
}
}
}
}
add_action('publish_post', 'generate_post_featured_image');
1条答案
按热度按时间iklwldmw1#
将上述代码添加到您的function.php中。这段代码从你的内容中获取第一张图片,并将其设置在特色图片中。