Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何动态更新WordPress帖子_Wordpress_Post Meta - Fatal编程技术网

如何动态更新WordPress帖子

如何动态更新WordPress帖子,wordpress,post-meta,Wordpress,Post Meta,我试图在用户注册时插入/更新post meta。在编写该操作之前,我正在页面上测试该代码,因此每当页面刷新时,它都会插入/更新post meta 问题:但是,下面的代码没有在post中插入/更新任何内容 元。有人能告诉我这段代码有什么问题,或者如何修复它吗 您可以使用序列化数据,而不是php数组来生成meta_值 研究其功能 他们正在将对象或数组转换为文本表示,以将其保存到数据库中的文本字段中 当您收到数据时,您需要取消序列化它,然后您将返回保存的对象或数组这没有经过测试,但我认为这应该可以工作

我试图在用户注册时插入/更新post meta。在编写该操作之前,我正在页面上测试该代码,因此每当页面刷新时,它都会插入/更新post meta

问题:但是,下面的代码没有在post中插入/更新任何内容 元。有人能告诉我这段代码有什么问题,或者如何修复它吗


您可以使用序列化数据,而不是php数组来生成meta_值

研究其功能

他们正在将对象或数组转换为文本表示,以将其保存到数据库中的文本字段中


当您收到数据时,您需要取消序列化它,然后您将返回保存的对象或数组

这没有经过测试,但我认为这应该可以工作

get\u post\u meta
将自动序列化数据库中的数组,但也将取消序列化。删除假代码

我对你问题中的if陈述有点困惑。如果这不是你想要的,我可以更新。但这将更新post_meta

$groupItem=get\u post(123);
如果($groupItem&&$groupItem->post_type=='cpt_group'){
$meta='group_users';
$user\u ID=get\u post\u meta($groupItem->ID,$meta);//如果不为false,则返回一个数组
//用户ID是一个数组
$user_id[]='26';//数组推送
//更新\u post\u meta-如果尚未设置,它将设置它。
更新发布元数据($groupItem->ID,$meta,$user\u ID);
}    

您是如何触发的?对于测试,我在页面加载时触发。我只是写在循环上面。但是,我尝试过使用
user\u register
action钩子并传递
$user\u id
,但这也不起作用。但是WordPress返回一个数组,那么我为什么要使用serialize呢?这可能是真的,但是,您是否尝试过只插入json或字符串而不是更新/插入数组?这是序列化/非序列化数据etcAlso的要点;请注意,update_post_meta可以将数据另存为数组,但它是自动序列化的。如果您想将值作为数组返回,则应使用get_post_meta的标志$single。Wordpress
get_post_meta
将返回一个数组。不需要序列化或取消序列化数据。
$groupItem = get_post(123);

if ($groupItem && $groupItem->post_type == 'cpt_group') {

    $meta     = 'group_users';
    $user_ids = get_post_meta($groupItem->ID, $meta, TRUE);

    if ( ! $user_ids) {
        $user_ids = [];
        add_post_meta($groupItem->ID, $meta, array_push($user_ids, 26));
    } else {
        update_post_meta($groupItem->ID, $meta, array_push($user_ids, 26), $user_ids);
    }
}