【问题标题】:Auto-update posts in Wordpress with Magic Fields使用 Magic Fields 在 Wordpress 中自动更新帖子
【发布时间】:2014-07-07 14:31:32
【问题描述】:

我试图在 Wordpress 上一次更新我的所有帖子,而不是痛苦地在每个页面上进行更新。
我使用 wp_update_post 制作了一个小插件,但它没有识别和更新 Magic Fields postmeta。然后我尝试从 Magic Fields 的 RCCWP_POST 中包含 SaveCustomFields,但是它需要 $_POST 信息才能工作。 我愿意接受任何建议,我尝试了一些 SQL 查询来完成此操作,但均未成功。

看起来像这样:

function activate()
{
    $my_posts = get_posts( array('post_type' => 'post', 'numberposts' => -1 ) );
    foreach ( $my_posts as $my_post )
    {
        wp_update_post( $my_post );
        RCCWP_Post::SaveCustomFields($my_post->ID);
    }
}

【问题讨论】:

  • numberposts 设置为 -1,我很确定它必须是一个正数。
  • 实际上 -1 允许您获取每个帖子,而不是设置一个非常高的数字来捕获它们 - cf stackoverflow.com/questions/12010497/…
  • 有道理。现在你到底在帖子上修改了什么?在您的代码中,您正在获取帖子并重新保存相同的信息? “在调用 wp_update_post() 之前,有必要创建一个数组来传递必要的元素” 看来您应该发送一个包含您要更新的任何内容的数组。 $my_post = array('ID' => 37, 'post_content' => '这是更新后的内容。')
  • 当您在 Magic Fields 插件中创建新的 Field 类别时,这些不会自动添加到旧帖子中 - 至少在我使用的版本中。因此,我只需要在不触及任何内容的情况下更新它,新字段就会出现在数据库中。我刚刚通过一些 SQL 查询解决了我的问题,这是一个相当低效的解决方案,但可以。
  • 把你的解决方案作为一个答案,这样如果其他人偶然发现这个问题,他们可以帮助他们。 :-)

标签: php sql wordpress


【解决方案1】:

我手动更新了数据库中需要的字段:

插入wp_postmeta(post_id、meta_key、meta_value) 选择 post_id、“new_criteria”、元值 FROM wp_postmeta WHERE meta_key="old_criteria" AND meta_value!="";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多