如何在POST_UPDATED操作钩子中获取帖子ID?

时间:2012-01-25 作者:supertrue

每当在管理中更新页面时,我想执行一个函数myfunction()[假设名称]。该函数对保存的内容不做任何操作,只是在其他地方运行一个不相关的任务。

我读到post_updated 钩子很适合用于此,但我似乎无法运行此代码:

add_action(\'post_updated\', \'myfunction\');

function myfunction() {
    // check if this is a page
    $id = get_the_id();
    if ( is_page($id) ) {
        // do stuff here
    }
}
我肯定我错过了一些明显的东西;我是否必须传入/返回参数($post\\u ID,$post\\u after,$post\\u before),从我在Wordpress Hooks Database) 让它发挥作用?如果我只想要身份证,我还需要传入/返回另外两个吗?

2 个回复
SO网友:Jared

您应该能够通过$_POST 变量

EDIT: 也许你应该试着在save_post 行动,像这样,但是save_post 有时会在其他实例上运行(即自动保存草稿),因此您需要进行更多验证。save_post 还将返回ID作为函数参数之一,这样您就可以方便地使用它了。

add_action(\'save_post\', \'myfunction\');

function myfunction( $id ) {

    // verify if this is an auto save routine. 
    // If it is our form has not been submitted, so we dont want to do anything
    if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) 
        return;

    // check if this is a page
    if ( \'page\' == $_POST[\'post_type\'] ) {

        // Return nothing if the user can\'t edit this page
        if ( !current_user_can( \'edit_page\', $id ) )
            return;

        // do stuff here, we have verified this is a page and you can edit it

    }

}
刚刚在localhost上测试了这个,对我来说很好。

使用了一些代码from here 你应该仔细阅读save_post 如果您决定尝试此功能,请采取行动!

SO网友:Satish Gandham

get\\u the\\u ID()应该可以工作,我使用它的目的非常相似。

我用的钩子是

add_action(\'future_to_publish\',\'123_total_calculator\');
add_action(\'new_to_publish\',\'123_total_calculator\');
add_action(\'draft_to_publish\',\'123_total_calculator\');
add_action(\'publish_post\',\'123_total_calculator\');

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $