发布新CPT并插入后Meta时的挂钩

时间:2012-09-04 作者:urok93

我想知道是否有一个钩子,当一个新的CPT发布并且它的Posteta已经插入时,它就会触发。

我正在使用publish\\u mycpt,但发现当时没有保存Posteta。我希望我的钩子只为这个自定义帖子类型运行,而不是为所有帖子运行。

我将通过操作挂钩调用的函数也被计划的cron作业使用,因此它不仅在通过管理界面发布新帖子时被调用,而且不确定这是否重要。

1 个回复
最合适的回答,由SO网友:ifdion 整理而成

我相信您可以使用save\\u post挂钩来完成这项工作,而不是对帖子的post类型及其post meta的值进行条件检查。

add_action( \'save_post\', \'do_some_function\');
function do_some_function($post_id) {
    global $post;
    $post_type_as_taxonomy = array(\'cpt-1\',\'cpt-2\'); // this is your hooked custom post types
    $post = get_post( $post_id );
    if(in_array($post->post_type, $post_type_as_taxonomy) && $post->post_status==\'publish\'){ // check if the post is hooked & published
        $my_meta = get_post_meta($post_id, \'my-meta\', true); // check if  it has a post meta with the ket \'my-meta\'
        if($my_meta){
            // do your hook function here
        }
    }
}

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴