正在将元关键字和元值从旧主题迁移到新主题

时间:2020-04-27 作者:Samuel Beaudoin

我刚刚为我的wordpress网站安装了一个新主题。(Jannah报纸主题,致Bimber)

我的网站是一个发布音乐视频的平台。Jannah Theme使用meta\\u键(tie\\u video\\u url)将发布到我帖子中的所有嵌入视频存储到wp\\u postmeta中的数据库中,meta\\u值显示youtube视频。

但我不能在我的新主题上显示这些视频。它们不会插入柱子。

有没有一个简单的技巧可以将这些数据注入到phpmyadmin的新主题中,并能够在我发布的帖子中检索视频?我的网站上有11000个视频。手动操作需要1个月的时间。

谢谢

1 个回复
最合适的回答,由SO网友:WebElaine 整理而成

您必须更仔细地查看旧主题如何显示Posteta。此时,您有几个选项:

为新主题创建一个子主题,并在其PHP文件中显示单个帖子,将子主题设置为显示postmeta,就像旧主题一样。(您还必须设置Posteta框,以便新帖子也可以包含此Posteta。)这样,如果您想要切换回旧主题,就不必更改数据。

按照您的要求,将数据移动到帖子中。这可能是更好的选择,因为它应该适用于任何主题,而不是保留Posteta。诀窍是找出旧主题显示数据的确切方式,部分取决于您使用的是块编辑器还是经典编辑器(或页面生成器)。

对于第二个选项,您需要执行以下操作:

查看旧主题,了解它是如何显示Posteta的。您可以查看代码本身(可能在single.php)

<?php
if(get_post_meta($post->ID, \'tie_video_url\', true)) {
    // The code you\'re looking for: how the URL gets output
}
?>
或者,您可以查看前端,查看HTML的最终外观。这将是继续下一步的关键。

一旦您知道HTML需要什么样的外观,我猜您将需要使用PHP,因为您不仅需要将URL添加到帖子内容中,还需要完整的HTML。然而,如果HTML很简单,您的MySQL查询可能是这样的。(请记住,您将需要使用自己数据库的前缀,它可能不是“wp\\u0”。)

UPDATE wp_posts INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id SET post_content = CONCAT(wp_postmeta.meta_value, wp_posts.post_content) WHERE wp_postmeta.meta_key = \'tie_video_url\');
这个简化的查询只需获取每个具有“tie\\u video\\u url”meta\\u键的帖子的postmeta值(该值可能是url),并将其放在每个帖子内容的开头。由于URL不会转换为完全嵌入,因此您可能需要确定HTML需要包装哪些内容,并使用PHP方法。