我的旧主题并不支持Woocommerce,我目前正在将我的朋友网站升级为Woocommerce。 旧主题使用帖子显示产品,我已成功将帖子类型更改为产品,以便在Woocommerce目录中显示。
问题是她把产品图片放在帖子里面。有没有办法使用phpmyadmin将帖子内的图像设置为产品图像?
答案 0 :(得分:0)
是的,有几种方法。
首先,只需要在帖子中找到附件ID(可能在db字段wp_posts-> post_content中),然后将其作为产品图像/缩略图分配给产品。
要做到这一点,你必须为帖子ID添加一个帖子元条目(wp_post_meta),其中元字段将是" _thumbnail_id"和元值应该是您在帖子内容中找到的附件ID。
或者你可以在wp-admin中执行这两个步骤。
答案 1 :(得分:0)
我创建了一个简单的脚本来移动它们.. 适用于Wordpress 4.4.2
// Product which doesn't have _thumbnail_id
$sql = "SELECT ID FROM `25c4_posts` WHERE post_type = 'product' AND ID NOT IN (SELECT post_id FROM 25c4_postmeta WHERE meta_key = '_thumbnail_id')";
$result = $con->query($sql);
while ($row = $result->fetch()) {
$post_id = $row['ID'];
$meta_key = '_thumbnail_id';
// GET attachment_id. How?
$get_attachments_query = "SELECT ID FROM 25c4_posts WHERE post_parent = ".$post_id." AND post_type='attachment' LIMIT 1";
$get_attachments = $con->query($get_attachments_query);
$attachments = $get_attachments->fetch();
$attachment_id = $attachments[0];
$stmt = $con->prepare('INSERT INTO 25c4_postmeta (post_id, meta_key, meta_value) VALUES (:post_id, :meta_key, :meta_value)');
$stmt->bindParam(':post_id', $post_id);
$stmt->bindParam(':meta_key', $meta_key);
$stmt->bindParam(':meta_value', $attachment_id);
$stmt->execute();
echo "<p>post_id: ".$post_id." | attachment_id: ".$attachment_id."<BR />".$get_attachments_query."</p>";
}
ps:不要忘记在顶级脚本上添加自己的数据库连接