具有ACF字段和WP元查询的WP_INSERT_POST在更新之前不返回任何行

时间:2019-03-29 作者:Rick Scolaro

我读了很多你不能用的东西wp_insert_postupdate_field 因为这个字段还没有创建或求和,所以我尝试了wp_insert_post.

我的字段是一个用户对象,我正在插入用户ID。我打开了多个值,所以我使用一个用户ID数组更新,该数组只包含一个条目。将来数组中将有多个条目。

以下是我尝试过的:

wp_insert_post 然后update_field 仅使用字段名

wp_insert_post 然后update_field 使用字段键

wp_insert_post 和使用update_post_meta 仅使用字段名

wp_insert_post 和使用update_post_meta 使用字段名的下划线版本插入字段名和字段键

wp_insert_post 和使用add_post_meta 使用字段名,字段键使用下划线版本的字段名

wp_insert_post 使用meta_input 在同时具有字段名和字段键的参数中,字段名的下划线版本

Here’s what happens:
插入字段。您可以在WP post编辑器中看到,它是以正确的方式成功创建的。使用PHPMyAdmin访问数据库会显示已添加。

Now the weirdness:
我正在运行此查询以了解我需要什么。查询每隔15秒在轮询进程上运行一次,以查找用户X的新消息。

$args = array(
  ‘numberposts’ => -1,
  ‘post_status’ => ‘publish’,
  ‘post_type’   => ‘message’,
  ‘meta_query’ => array(
       ‘relation’ => ‘AND’,
           array(
              ‘key’ => ‘message_recipients’,
              ‘value’ => get_current_user_id(),
              ‘compare’ => ‘LIKE’
           ),
           array(
              ‘key’ => ‘message_read_by’,
              ‘value’ => get_current_user_id(),
              ‘compare’ => ‘NOT LIKE’
          )
    )
);
发生的情况是,查询不返回任何行。但是,当您进入WP post编辑器并手动更新post时,只有在那时才能找到记录。

实际上,我已经尝试提取从该请求生成的SQL,其行为与此相同。在单击“更新”之前,找不到任何行。

找到记录后,当代码再次运行时会进行清理update_post_meta 将用户id插入“message_read_by” 字段,该字段有效地将其从查询结果中删除,因为它不适合第二个搜索参数。所以这一次它起作用了。如果您不使用WP post editor触摸数据,那么它可以工作吗?这没有道理。

我需要这个来处理没有WP post编辑器的编程插入。数据看起来一样!以下是数据库视图:

使用insert进行的初始编程更新。https://imgur.com/BN9DvGi

在我点击帖子上的“更新”后:https://imgur.com/GnwIgoF

这是相同的数据!那么,为什么查询只在我单击“更新”之后才起作用呢?

这个wp_posts 表也相同,只是作者用户id从3更改为0。我也尝试过更新数据库中的那个字段,但也不是这样。

当我单击WP post editor中的更新按钮时,是否有其他字段或内容被更改或更新?这就是我所能想到的。

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

您好,感谢所有阅读本文并发表评论的人。

显然,查询没有返回任何行,因为这两个字段都需要存在,查询才能正确运行。第二个元参数“message\\u read\\u by”不存在,所以我只需要插入没有值的参数。

问题已解决。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post