我正在开发一个wordpress插件,我想在每次发布,发布,编辑,删除,删除等类型的“作业”的自定义帖子时触发(基本上每当有更新时)那个帖子类型)。
我在找到正确的动作挂钩时遇到了一些麻烦。我已经搜索过了,根据我的理解,我不能使用例如(publish_post),因为我使用的是自定义帖子类型,所以它应该是(publish_job)的行。但是,如果我进入工作类别并在工作类别中发布草稿,那对我来说似乎也不适用。
所以,我想我有两个问题:
1)我应该在自定义帖子类型的上下文中使用什么正确的操作。
2) 一个。我是否可以使用某种操作来包含对作业类别的各种更改(即:后编辑,发布,取消发布,废弃/删除等)。 湾如果没有,我将如何为所有这些可能的操作调用add_action。
谢谢!
答案 0 :(得分:2)
<?php
function run_on_all_job_status_transitions( $new_status, $old_status, $post ) {
if ($post->post_type == 'job') {
// do stuff
}
}
add_action( 'transition_post_status', 'run_on_all_job_status_transitions', 10, 3 );
答案 1 :(得分:1)
不确定是否只有一个动作,但以下是各种动作:
save_post(创建或更新)
wp_delete_post(已删除)
wp_trash_post(已删除)
所以你可以这样做:
function my_callback_function() {
if($post->post_type = 'job') {
//do something here
}
}
all_actions = array('save_post','wp_delete_post','wp_trash_post');
foreach ($all_actions as $current_action) {
add_action($current_action, 'my_callback_function');
}