Wordpress自定义帖子操作挂钩

时间:2015-05-11 13:46:22

标签: php wordpress-plugin wordpress custom-post-type

我正在开发一个wordpress插件,我想在每次发布,发布,编辑,删除,删除等类型的“作业”的自定义帖子时触发(基本上每当有更新时)那个帖子类型)。

我在找到正确的动作挂钩时遇到了一些麻烦。我已经搜索过了,根据我的理解,我不能使用例如(publish_post),因为我使用的是自定义帖子类型,所以它应该是(publish_job)的行。但是,如果我进入工作类别并在工作类别中发布草稿,那对我来说似乎也不适用。

所以,我想我有两个问题:

1)我应该在自定义帖子类型的上下文中使用什么正确的操作。

2) 一个。我是否可以使用某种操作来包含对作业类别的各种更改(即:后编辑,发布,取消发布,废弃/删除等)。 湾如果没有,我将如何为所有这些可能的操作调用add_action。

谢谢!

2 个答案:

答案 0 :(得分:2)

你是说这样的意思吗?这应该在每次自定义帖子“工作”时触发。状态已经改变。如果您想要执行特定于操作的内容,只需在if子句中添加一个检查。

<?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');
}
相关问题