每次自定义帖子类型发生更改时,我想调用一个函数。发布、更新或删除。在该函数中,我从该自定义帖子类型中获取所有帖子,并创建一个在文件中导出的 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/