WordPress Hook 预发布更新

Posted

技术标签:

【中文标题】WordPress Hook 预发布更新【英文标题】:Wordpress Hook Pre Post Update 【发布时间】:2010-02-14 05:12:45 【问题描述】:

我正在编写一个 wordpress 插件。如果帖子状态是未来,我想将帖子状态设置为发布。

我知道要使用的一个钩子是 pre_post_update。

但是,与帖子相关的详细信息数组存储在哪里以便我可以更改 post_status?

感谢您的帮助

【问题讨论】:

【参考方案1】:

对我来说,调用 pre_post_update 钩子的函数出现在 wp-includes/posts.php 的第 1525 行:

do_action( 'pre_post_update', $post_ID );

如您所见,它在执行时传递正在更新的帖子的 ID。要从那里获取帖子,您只需拨打get_post(),例如:

function do_something_with_a_post($post_id, $post_data) 
     // now do something with $post_data

add_action('pre_post_update', 'do_something_with_a_post', 10, 2);

上面的$post 变量应该引用一个对象,该对象具有您正在查找的帖子的所有各种属性,希望如此。

【讨论】:

修改 $post 变量似乎不会将其传播到数据库。 pre_post_update 接受 $data 作为第二个参数:do_action( 'pre_post_update', $post_ID, $data ); 要更新数据,请使用过滤器而不是操作。更改保存在 DB 中的数据的过滤器是 wp_insert_post_data codex.wordpress.org/Plugin_API/Filter_Reference/…

以上是关于WordPress Hook 预发布更新的主要内容,如果未能解决你的问题,请参考以下文章

插件更新挂钩

WordPress - 激活插件时正在调用 register_uninstall_hook

在 WordPress 中调试“register_activation_hook”

Wordpress 翻译页面选项

WordPress,cron和time - 服务器上的时间会影响插件吗?怎么解决?

WordPress 插件机制的简单用法和原理(Hook 钩子)