当前位置: 首页 > 知识库问答 >
问题:

使用ACF更新/创建自定义帖子类型后,Wordpress中的调用函数

阎嘉荣
2023-03-14

每次自定义帖子类型发生变化时,我都想调用一个函数。发布、更新或删除。在该函数中,我从该自定义帖子类型中获取所有帖子,并创建一个我在文件中导出的json文件。

add_action( 'transition_post_status', 'get_resources_data', 10, 3 );

function get_resources_data($new_status, $old_status, $post ) {
  if ($post->post_type == 'resources') {
    $args = array (
        'post_type' => 'resources',
        'post_status' => 'publish',
        'posts_per_page' => -1
    );
    $queryResults = new WP_Query( $args );
    if ( $queryResults->have_posts() ) {
        //do my stuff here
        //fetch acf fields with get_field()
        //create json file
        //export json file
    }
  }
}

问题是自定义帖子类型有一些我包含在JSON文件中的高级自定义字段。但是,当创建新帖子时,所有ACF都是空的,而标题和创建数据等字段可用。如果我更新帖子,则会获取所有ACF。

我的印象是transition_post_status在ACF存储到数据库之前是挂钩的。我应该使用另一个操作还是用另一种方式执行?

共有1个答案

孟浩慨
2023-03-14

事实上,ACF为您提供了一个动作钩子。

add_action('acf/save_post','get_resources_data');-如果您将优先级设置为低于10,则在保存数据之前应用该操作,如果您发出prio,或使其高于10,则在保存数据后应用。

你可以在这里读到更多关于钩子的信息:https://www.advancedcustomfields.com/resources/acf-save_post/

 类似资料:
  • 我正在设置一个endpoint,我想用它来更新自定义帖子类型中的ACF字段。 在这里,我注册了字段endpoint和回调 在邮递员中发送此请求:http://localhost:32851/wp-json/responsify/v1/assign_external_writer?写入器=32272 如果我使用“title=my_new_title”而不是writer,它会正确更新。但是使用 ACF

  • 本文向大家介绍WordPress 3.0中的自定义帖子类型,包括了WordPress 3.0中的自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 本文与WordPress 3.0相关。此处发布的许多代码在以前的版本中将不起作用,并且某些信息可能会在较新的版本中更改。 WordPress已经在系统中内置了五种不同的内容类型。 帖子 这是标准的内容类型,通常是博客安装中使用最多的内容。帖子往往会

  • 本文向大家介绍WordPress 注册自定义帖子类型,包括了WordPress 注册自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 示例 假设您有一个图书馆网站,并且想要一个名为Books的自定义帖子类型。可以注册为 如此简单,您现在就注册了一个自定义帖子类型。 该代码段可以放在主题functions.php文件中,也可以放在插件结构中。

  • 我可以使用自定义字段值获取数据吗?我的是,字段名是。那么,如何使用获取所有数据呢? 代码如下: 此代码不起作用。

  • 我有两个不同类别的自定义帖子类型(公文包),然后我有两个页面显示两个类别的帖子。 我调用页面时的url类似于mysite.com/pagename,其中pagename与公文包类别同名。 我的问题是,当我进入单一公文包时,url会变成mysite.com/portfolio/portfolio-name 有没有办法在url中显示投资组合类别?应该像mysite.com/portfolio-cate

  • 我试图为自定义帖子类型创建一个页面,但我无法真正实现。以下是我正在尝试的全部内容- 自定义帖子类型注册的functions.php片段 我使用名为单Tutorial.php的模板为这个自定义帖子类型模板。此外,在我的帖子显示中,我使用the_permalink()链接到帖子。 现在考虑一个标题为Test3的帖子现在在我的仪表板上,我看到它的PyMalink AS。 当我回显我得到的_permali