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

标签 wordpress advanced-custom-fields

每次自定义帖子类型发生更改时,我想调用一个函数。发布、更新或删除。在该函数中,我从该自定义帖子类型中获取所有帖子,并创建一个在文件中导出的 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 存储到数据库之前就被 Hook 了。我应该使用其他操作还是以其他方式进行?

最佳答案

ACF 实际上为您提供了一个 Action 钩子(Hook)来实现这一点。

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

您可以在此处阅读有关该钩子(Hook)的更多信息:https://www.advancedcustomfields.com/resources/acf-save_post/

关于wordpress - 使用 ACF 更新/创建自定义帖子类型后调用 Wordpress 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62466846/

相关文章:

mysql - 具有多个自定义帖子类型和多个日期列名称的复杂 meta_query 和 orderby

css - 添加自定义字段来控制菜单类

php - 现有帖子的默认值

php - 如何使用php排除数组中的最后一行

javascript - 将 ACF 与 GraphQL 和 Gatsby 结合使用,灵活内容不会返回其子 block 的顺序

css - 以站点标题为中心的标志 Wordpress

css - WordPress子主题错误

WordPress theme-functions.php 中的 PHP 和 MYSQL 脚本用于提取和回显数据

jquery - 仅在元素接触的地方显示边框?

css - 如何在 wordpress 中使用 add_editor_style() 包含绝对 css 路径