如何获取分配给当前自定义分类的自定义帖子类型以进行查询?

时间:2017-10-10 作者:Andreas Rex

如果访问者在指定的自定义分类中,我将查询自定义帖子类型的所有帖子。我可以在参数列表中使用所有自定义帖子类型的数组,但我想用visitior所属类别的信息动态地执行此操作。有没有办法从当前的分类法中获取自定义帖子类型名称?

$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
if ( ! $paged ) {
    $paged = ( get_query_var( \'page\' ) ) ? get_query_var( \'page\' ) : 1;
}

$posts_per_page = get_option( \'posts_per_page\' );

// Get the queried object and sanitize it
$current_page = sanitize_post( $GLOBALS[\'wp_the_query\']->get_queried_object() );
// Get the slug
$slug_taxonomy  = @$current_page->taxonomy;

// Check if I\'m in a category
if ( isset( $slug_taxonomy ) && ! is_null( $slug_taxonomy ) && ! empty( $slug_taxonomy ) ) {
    $query = new WP_Query( array(
            \'posts_per_page\' => $posts_per_page,
            \'post_type\'      => \'i_dont_know\',   // How can I get the custom post type?
            \'paged\'          => $paged,
            \'post_status\'    => \'publish\',
            \'orderby\'        => \'title\',
            \'order\'          => \'ASC\',
            \'tax_query\'      => array(
                array(
                    \'taxonomy\' => $current_page->taxonomy,
                    \'field\'    => \'term_id\',
                    \'terms\'    => $current_page->term_id,
                )
            )
        )
    );
}

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

您可以使用\'post_type\' => \'any\' 如果您不确定其他查询参数产生的帖子类型。

根据文档,当您使用tax_query:

post\\u类型(字符串/数组)-使用post类型。按帖子类型检索帖子,默认值为\'post\'. 如果\'tax_query\' 为查询设置,默认值为\'any\'

WP_Query / Type parameters

外部WP_Query 您可能需要从global获得此类信息$wp_taxonomies 数组,它跟踪分类法及其应用的帖子类型。

结束

相关推荐

Search Media by taxonomy

如何根据前端的分类法搜索媒体?以下查询显示我希望通过搜索返回的内容:$args = array( \'post_type\' => \'attachment\', \'post_status\' => \'inherit\', // for PDFs \'post_mime_type\' => \'application/pdf\', // if you need PDFs from a specific media c