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 中更新自定义 PageLine 的部分时的操作挂钩