首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为所有帖子分配/更新自定义字段值(如何只分配给没有自定义字段值的帖子?)

为所有帖子分配/更新自定义字段值(如何只分配给没有自定义字段值的帖子?)
EN

WordPress Development用户
提问于 2021-03-08 19:34:14
回答 1查看 79关注 0票数 1

我是说,有7000多个职位。有些人有私人空间,但有些人没有。我想大量添加一个自定义字段到那些不包含自定义字段并更新其值的字段中。

下面的插件代码已经创建,以更新所有帖子的元值。我只想把它添加到不包含元值的帖子中。我怎么能这么做?

代码语言:javascript
复制
     'post', // Only get the posts
        'post_status' => 'publish', // Only the posts that are published
        'posts_per_page'   => -1 // Get every post
    );
    $posts = get_posts($args);
    foreach ( $posts as $post ) {
        // Run a loop and update every meta data
        update_post_meta( $post->ID, 'meta-key', 'meta_value' );
    }
}
?>
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2021-03-18 21:09:56

您可以使用元数据_查询参数 (和查询不存在元键的所有帖子)将查询限制为只有具有或没有特定元值的帖子。

代码语言:javascript
复制
$query = new WP_Query(array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => 'your_meta_key',
            'compare' => 'NOT EXISTS',
        ),
    ),
    'no_found_rows' => true,
    'fields' => 'ids',
));

if ( $query->posts ) {
    array_walk(
        $query->posts,
        function($post_id, $index) {
            update_post_meta( $post_id, 'your_meta_key', 'meta_value' );
        }
    );
}

此外,取决于您的主机,您可能希望设置对posts_per_page的限制,并多次运行该脚本(可能吗?)而不是使用-1,因为对数千个帖子的查询可能会使站点崩溃,或者执行时间可能会耗尽。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/384738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档