WordPress的|将内容从主编辑器批量移至自定义字段

时间:2019-06-11 19:39:42

标签: php html mysql database wordpress

我使用了Advanced Custom Fields插件在Wordpress中创建了一个新的“自定义字段”。我现在的目标是将所有下载链接从“ the_content ”移动到新创建的自定义字段“ the_field('download_link')”。问题是我有10,000多个帖子需要修改。我想知道是否有一种快速的方法,而不是手动移动每个帖子的下载链接?

请查看以下图片,以了解我要实现的目标。

Before | After

一个障碍是,所有内容都保存在“ wp_posts”表中,而自定义字段内容保存在“ wp_postmeta”表中。

保存在“ download_link”自定义字段中的内容在“ wp_postmeta”表中如下所示:

(8214, 2282, 'download_link', '<div class=\"source\"><a href=\"https://www.google.com/\" target=\"_blank\"><img src=\"https://www.google.com/image.png\"></a></div>'),
(8215, 2282, '_download_link', 'field_5cffd35335ce3'),
(8220, 2280, 'download_link', '<div class=\"source\"><a href=\"https://www.google.com/\" target=\"_blank\"><img src=\"https://www.google.com/image.png\"></a></div>'),
(8221, 2280, '_download_link', 'field_5cffd35335ce3'),
(8226, 2278, 'download_link', '<div class=\"source\"><a href=\"https://www.google.com/\" target=\"_blank\"><img src=\"https://www.google.com/image.png\"></a></div>'),
(8227, 2278, '_download_link', 'field_5cffd35335ce3'),

可以完全做到吗?还是唯一真正的方法是手动移动下载链接?

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果下载链接的格式始终相同,则可以自动完成。

  1. 备份数据库

  2. 创建一个名为axios.all的php文件。 循环浏览所有产品,获取描述中的链接,然后将其移至post_meta。

  3. 使用the one suggested by OpenFX启动文件: axios.spread

示例代码

beforeRouteEnter(to, _from, next) {
    const promises = [
        axios.get('/api/states/users')
    ];

    if (to.params.id) {
        promises.push(axios.get(`/api/user/${to.params.id}`));
    }

    axios.all(promises)
        .then(([statesRes, userRes]) => {
            next((vm) => {
                vm.states = statesRes.data.data;
                if (userRes) {
                    vm.user = userRes.data.data;
                    vm.create = false;
                }
            });
        });
}

注释

  1. 备份数据库

  2. 对一些帖子进行测试,以使您对代码充满信心。您可以在编辑器中还原以前的版本。

  3. 然后试穿100,然后试穿1000。您通常会发现帖子输入的方式略有不同。

  4. 要在10.000个帖子上运行可能要花费几个小时,这就是为什么需要WP-CLI命令的原因。