首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建后,ACF字段为空以供休息

创建后,ACF字段为空以供休息
EN

Stack Overflow用户
提问于 2021-04-11 15:56:27
回答 1查看 301关注 0票数 0

每次发布一篇文章,我都会发送推送通知。所有工作都按预期进行,但ACF字段为空。相反,当我重新保存post数据时,它会正确地通过。

基本工作流

  • 用户发布帖子
  • 将触发发送推送通知的操作。
  • ACF字段的有效载荷为空(标题、摘录、休息字段都可以)

我已经阅读了几个线程,但无法实现在创建post之后交付ACF字段来休息。

我试过的是:

与优先级100,以确保帖子已经保存,然后得到的信息。

代码语言:javascript
运行
复制
add_action(
      "save_post",
      ["YaguaretePluginApiBlog", "postPushNotification"],
      100,
      3
    );

尝试使用transition_post_status,结果相同。

代码语言:javascript
运行
复制
add_action(
       "transition_post_status",
       ["YaguaretePluginApiBlog", "postPushNotification"],
       99,
       3
     );

代码语言:javascript
运行
复制
add_action('rest_after_insert_post', ["YaguaretePluginApiBlog", "postPushNotification"], 100, 3);

所有这些触发都没有问题,但在获取ACF字段时,没有任何工作。

还尝试了默认的acf/save_post,但不幸的是,与其他操作相比,这一次甚至没有触发

代码语言:javascript
运行
复制
add_action("acf/save_post", [
      "YaguaretePluginApiBlog",
      "postPushNotification",
    ]);

这就是我想要得到的acf字段

尝试使用ACF中的the_field函数

代码语言:javascript
运行
复制
$data[notificationType] = the_field(
       "yaguarete_push_notification",
       $_post->ID
     );

尝试使用post_meta检索字段信息

代码语言:javascript
运行
复制
$data[notificationType] = get_post_meta($post["id"])[
       "yaguarete_push_notification"
     ][0]

尝试使用来自ACF的get_field

代码语言:javascript
运行
复制
get_field("yaguarete_push_notification", $post["id"], false)

似乎没有用,谁有更多的经验,能指出我做错了什么吗?

提前感谢

EN

Stack Overflow用户

回答已采纳

发布于 2021-04-18 19:55:06

对于任何闯入同一问题的人,我最终都会使用下面的钩子"帖子“。

经过几次测试(其中只包括只在文章发布时触发某些操作),这就达到了目的:

代码语言:javascript
运行
复制
add_action(
      "rest_after_insert_post",
      ["YaguaretePluginApiBlog", "postPushNotification"],
      100,
      3
    );

只有在新帖子发布后才发送推送

代码语言:javascript
运行
复制
function postPushNotification($post, $request, $creating)
  {
    $postOriginal = $post;
    $post = [get_post($post->ID)];
    $post = YaguaretePluginApiBlog::formatPosts($post)[0];

    //only send push notification when
    if (
      $postOriginal->post_type == "post" &&
      $postOriginal->post_status == "publish" &&
      $postOriginal->post_modified == $postOriginal->post_date
    ) {

钩子已经保存了所有元数据,包括ACF字段,这是我最初的问题,没有从这个自定义字段中检索值。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67047126

复制
相关文章

相似问题

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