Wordpress 自定义帖子操作挂钩

Posted

技术标签:

【中文标题】Wordpress 自定义帖子操作挂钩【英文标题】:Wordpress custom post action hook 【发布时间】:2015-07-22 01:23:45 【问题描述】:

我正在开发一个 wordpress 插件,每次发布、发布、编辑、删除、删除等“工作”类型的自定义帖子时,我都会触发该插件(基本上只要有更新该帖子类型)。

我很难找到要调用的正确操作挂钩。我已经搜索过,据我了解,我不能使用例如(publish_post),因为我使用的是自定义帖子类型,所以它应该类似于(publish_job)。但是,如果我进入工作类别并在工作类别中发布草稿,这似乎对我也不起作用。

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

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

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

谢谢!

【问题讨论】:

试试这些链接code.tutsplus.com/tutorials/…wordpress.stackexchange.com/questions/1753/… 感谢您的链接,但我无法找到答案。 【参考方案1】:

你的意思是这样的吗?每次自定义帖子“工作”状态发生更改时,都会触发此操作。如果您想执行特定操作,只需在 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 );

【讨论】:

wordpress 不建议对插件或主题使用 transition_post_status 操作。 WordPress 推荐使用 transition_post_status action 但是 WordPress 不推荐使用已弃用的 _transition_post_status function【参考方案2】:

不确定是否只有一个操作,但以下是各种操作:

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');

【讨论】:

以上是关于Wordpress 自定义帖子操作挂钩的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 自定义帖子类型单一作为存档的父级

在 WordPress 中更新自定义 PageLine 的部分时的操作挂钩

通过自定义帖子类型中的字段分配模板的过滤器或操作挂钩

自定义帖子类型动作挂钩/瞬态

通过 wpuf pro 更新帖子时更新 wordpress slug

WordPress > 从自定义帖子类型获取自定义分类