我正在尝试将站点迁移到WP。我们有一大堆图片,我做了一些研究,我认为我最好的办法是用CSV导入数据,将图像的相对URL存储为自定义字段。
所以我发现this --这看起来很理想——我就是这样实现的(在functions.php中,当我遇到“无对象”错误时,添加了一个全局调用):
function store_cf_featured_image() {
global $post,$wpdb;
$uploads = wp_upload_dir();
// Get all attachment IDs and filenames
$results = $wpdb->get_results("SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = \'_wp_attached_file\'");
// Create an \'index\' of attachment IDs and their filenames
$attachments = array();
foreach ($results as $row)
$attachments[ intval($row->post_id) ] = $row->meta_value;
// Get all featured images
$images = $wpdb->get_results("SELECT post_id, meta_value AS \'url\' FROM $wpdb->postmeta WHERE meta_key = \'featured_image\'");
// Loop over each image and try and find attachment post
foreach ($images as $image) {
if (preg_match(\'#^https?://#\', $image->url))
$image->url = str_replace($uploads[\'baseurl\'], \'\', $image->url); // get relative URL if absolute
$filename = ltrim($image->url, \'/\');
if ($attachment_ID = array_search($filename, $attachments)) {
// found attachment, set post thumbnail and delete featured image
update_post_meta($image->post_id, \'_thumbnail_id\', $attachment_ID);
delete_post_meta($image->post_ID, \'featured_image\');
}
}
}
add_action( \'init\', \'store_cf_featured_image\' );
然而,当我在自定义字段“featured\\u image”中放置链接并保存它时。。。没有什么没有错误,但什么都没有。我更新了帖子并返回,但链接仍然只是自定义字段的链接,没有设置“特色图片”。
有人知道问题是什么吗?我现在认为这会将图像存储为内置“媒体库”的一部分,对吗?
我是否能够修改这段代码,以便从自定义字段中为每个图像引入Alt文本等。
非常感谢您的任何意见!谢谢