在保存帖子之前获取类别

时间:2013-12-31 作者:Attila Olah

我正在使用过滤器“wp\\u insert\\u post\\u data”来决定要保存到数据库的内容。在保存帖子之前,我需要知道选择了哪个类别。

在使用该过滤器时,我如何知道已拾取的类别?在此阶段是否可以访问类似于$\\u POST[“category”]的变量或类别对象?

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

是的,你离它很近。只需使用$postarr 此过滤器的参数:

add_filter( \'wp_insert_post_data\' , \'wpse128138_wp_insert_post_data\', 99, 2 );
function wpse128138_wp_insert_post_data( $data, $postarr ) {

    // run this only for posts
    if ( \'post\' != $postarr[\'post_type\'] )
        return $data;

    foreach( $postarr[\'post_category\'] as $category_id ) {
        if ( is_wp_error( $category = get_category( $category_id ) ) )
            continue; // invalid category, just pass

        // and here you can safely use the $category object
    }

    return $data;
}

结束

相关推荐

List of Posts and Categories

我有一个自定义的物种分类法和一个自定义的动物post类型。我想在树状视图中显示它们,如下所示:所有动物Fish (taxonomy term)<鲨鱼(自定义贴子类型)太阳鱼Mammals<猴子斑马列表中的每个项目都将链接到各自的位置。因此,自定义帖子类型链接到动物,分类术语转到分类页面。我知道WordPress列出类别的方法,但我也希望将帖子分组到每个类别下(自定义分类法)。