是否在一次呼叫中更新同一帖子的多个帖子元?

时间:2020-07-28 作者:Ali Hamdan

如何仅使用一个调用更新同一帖子的多个字段/自定义字段?

我遇到的一切都是多次打电话的情况;更新\\u post\\u meta“;,对于每个字段。

有没有一种方法可以使用数组传递数据,只需一次调用就可以更新多个post meta值(对于同一个post)?

我正在尝试以下方法,但似乎不起作用,是否可以使用;wp\\U update\\U post“;?

$New_Meta = array
        (
        \'Client_Name\'    => $Client_Name_Edit,
        \'Client_Type\'    => $Client_Type_Edit,
        );
wp_update_post(array(
            \'ID\'        => $Post_ID,
            \'post_name\' => $Client_Name_Edit, 
            \'post_title\'=> $Client_Name_Edit,
            \'meta_input\'=> $New_Meta,
    ));
}
非常感谢

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

EDIT: Original answer was inaccurate as you can do this with wp_update_post and the meta_input field

根据更新后的问题和评论,这可以通过wp_update_post (或wp_insert_post 对于新记录),使用meta_input 在阵列上键入,例如:

$metaValues = array(
    \'key1\' => \'value1\',
    \'key2\' => \'value2\', 
    //   ... as many key/values as you want
);

wp_update_post(array(
            \'ID\'        => $postId,
            \'meta_input\'=> $metaValues,
));
Original Answer (如上述选项所示,这样做是可行的,但没有意义)

没有。The docs 清楚地显示功能不支持这一点。

显然,如果您同时有许多事情要做,那么可以使用数组来传递许多值。

这是一个PHP编程问题,不是Wordpress问题,但代码如下所示:

$postId = 1234;

// Perhaps you have multiple key value pairs, like this:
$metaValues = array(
    \'key1\' => \'value1\',
    \'key2\' => \'value2\', 
    //   ... as many key/values as you want
);

// Set all key/value pairs in $metaValues
foreach ($metaValues as $metaKey => $metaValue) {
    update_post_meta($postId, $metaKey, $metaValue);
}
或者这只是为了更新多个键上的值:

// Or maybe you want to update a bunch of keys with the same value for some reason..
$metaValue = "10";
$metaKeys = Array("key1", "key2"); // as many keys as you want here

foreach($metaKeys as $metaKey) {
    update_post_meta($postId, $metaKey, $metaValue);
}

相关推荐

本地主机上的WordPress(LAMP)-无法登录,只能重定向到wp-login.php

我在我的新笔记本电脑上安装了一个LAMP服务器,并从实时服务器下载了一个网站到我的本地机器。一切似乎都正常,但当我转到时,我无法登录http://localhost/mysite/wp-login.php并输入正确的详细信息,它只会重定向回wp登录。没有实际登录的php。我在本地机器上安装了一个新的WordPress,所以它是一个新的wp配置文件。我确保了wp\\u选项中的站点URL是正确的,我确保了用户名和密码是正确的,我尝试下载了。htaccess文件,我尝试在WP配置中定义WP\\u HOME和WP