首页 文章

添加/更新帖子后的WordPress钩子和插入后元素后?

提问于
浏览
3

我有一个名为“视频”的自定义帖子类型,它也定义了一些自定义字段 . 创建或更新“视频”帖子后,我想运行一个功能 .

不幸的是,这个函数需要我刚创建的帖子的post元数据的值,并且通常的钩子( save_postpublish_post 等)似乎在post meta插入到数据库之前运行,所以它不是不可用 .

如果我只是通过单击“发布”手动更新帖子而不进行任何更改,则功能正常 .

Is there a hook that fires later in the process, after all metadata has been inserted?

1 回答

  • 8

    有一个名为updated_post_meta的无证钩子可以满足我的需要 .

    它将4个参数传递给钩子函数:元ID,对象ID(与帖子ID相同),元键和元值 . 在我的钩子函数中,我检查元键名是否是我需要值的字段,如果是,则继续 .

    这是它的样子:

    /**
     * Use value of post meta for something when the post 
     * meta changes
     * @param  integer $meta_id    ID of the meta data field
     * @param  integer $post_id    Post ID
     * @param  string $meta_key    Name of meta field
     * @param  string $meta_value  Value of meta field
     */
    function saveYouTubeInfo($meta_id, $post_id, $meta_key='', 
                                                 $meta_value=''){
    
        // Stop if not the correct meta key
        if ( $meta_key != 'my_meta_field_name') {
            return false;
        }
    
        // Function code goes here.
    }
    
    add_action('updated_post_meta', 'saveYouTubeInfo', 10, 4);
    

    顺便说一句,与 added_post_meta 不同,您不会将 post 替换为您要定位的帖子类型 . 在我的情况下,帖子类型的名称是 videos ,但我仍然必须使用 updated_post_meta 而不是 updated_videos_meta .

相关问题