查询自定义帖子分类

时间:2017-05-16 作者:Stefano

我试图从一个名为“immobili”的自定义帖子的特定分类中查询帖子。这是报关单

        function wpse239701_immobili_post_type() {

        $labels = array(

            \'name\'                  => _x( \'Immobili\', \'Post Type General Name\', \'text_domain\' ),

            \'singular_name\'         => _x( \'Immobili\', \'Post Type Singular Name\', \'text_domain\' ),

            \'menu_name\'             => __( \'Immobili\', \'text_domain\' ),

            \'name_admin_bar\'        => __( \'Immobili\', \'text_domain\' ),

            \'archives\'              => __( \'Item Archives\', \'text_domain\' ),

            \'parent_item_colon\'     => __( \'Parent Item:\', \'text_domain\' ),

            \'all_items\'             => __( \'All Items\', \'text_domain\' ),

            \'add_new_item\'          => __( \'Add New Item\', \'text_domain\' ),

            \'add_new\'               => __( \'Add New\', \'text_domain\' ),

            \'new_item\'              => __( \'New Item\', \'text_domain\' ),

            \'edit_item\'             => __( \'Edit Item\', \'text_domain\' ),

            \'update_item\'           => __( \'Update Item\', \'text_domain\' ),

            \'view_item\'             => __( \'View Item\', \'text_domain\' ),

            \'search_items\'          => __( \'Search Item\', \'text_domain\' ),

            \'not_found\'             => __( \'Not found\', \'text_domain\' ),

            \'not_found_in_trash\'    => __( \'Not found in Trash\', \'text_domain\' ),

            \'featured_image\'        => __( \'Featured Image\', \'text_domain\' ),

            \'set_featured_image\'    => __( \'Set featured image\', \'text_domain\' ),

            \'remove_featured_image\' => __( \'Remove featured image\', \'text_domain\' ),

            \'use_featured_image\'    => __( \'Use as featured image\', \'text_domain\' ),

            \'insert_into_item\'      => __( \'Insert into item\', \'text_domain\' ),

            \'uploaded_to_this_item\' => __( \'Uploaded to this item\', \'text_domain\' ),

            \'items_list\'            => __( \'Items list\', \'text_domain\' ),

            \'items_list_navigation\' => __( \'Items list navigation\', \'text_domain\' ),

            \'filter_items_list\'     => __( \'Filter items list\', \'text_domain\' ),

        );

        $args = array(

            \'label\'                 => __( \'Immobili\', \'text_domain\' ),

            \'description\'           => __( \'Descrizione immobile\', \'text_domain\' ),

            \'labels\'                => $labels,

            \'supports\'              => array(\'title\', \'thumbnail\', \'editor\'),

            \'taxonomies\'            => array(\'immobili_categories\'),

            \'hierarchical\'          => true,

            \'public\'                => true,

            \'show_ui\'               => true,

            \'show_in_menu\'          => true,

            \'menu_position\'         => 5,

            \'show_in_admin_bar\'     => true,

            \'show_in_nav_menus\'     => true,

            \'can_export\'            => true,

            \'has_archive\'           => \'immobili\',        

            \'exclude_from_search\'   => false,

            \'publicly_queryable\'    => true,

            \'capability_type\'       => \'page\',

            \'rewrite\' => array(

                \'slug\' => \'immobili/%immobili_categories%\',

                \'with_front\' => false

            ),              

        );

        register_post_type( \'immobili\', $args );



    }

    add_action( \'init\', \'wpse239701_immobili_post_type\' );

function wpse239701_immobili_taxonomy() {  

    register_taxonomy(  

        \'immobili_categories\',  

        \'immobili\',        

        array(  

            \'hierarchical\' => true,  

            \'label\' => \'Categorie\',

            \'query_var\' => true,

            \'rewrite\' => array(

                \'slug\' => \'immobili\', 

                \'with_front\' => false

            )

        )  

    );  

}  

add_action( \'init\', \'wpse239701_immobili_taxonomy\' );
之后,我尝试通过以下方式查询特定分类页面中的帖子:

<?php 

// WP_Query arguments
$args = array( 
\'post_type\' => \'immobili\',
$tax_query = array(
    array(
        \'taxonomy\' => \'immobili_categories\',
        \'field\' => \'slug\',
        \'terms\' => \'realizzazioni\',


    ),
),

);


// The Query
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        echo \'<div class="columns small-12 medium-4 large-4">\';
        echo the_title();
        echo \'</div>\';
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

?>
但查询继续返回所有“immobili”帖子,而不是我试图显示的特定分类法(realizzazioni)。

哪里出了错?

非常感谢。

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

请尝试修改您的代码:

$args = array( 
        \'post_type\' => \'immobili\',
        \'tax_query\' => array(
                array(
                        \'taxonomy\' => \'immobili_categories\',
                        \'field\' => \'slug\',
                        \'terms\' => \'realizzazioni\',
                ),
        ),
);


// The Query
$query = new WP_Query( $args );

结束

相关推荐

Custom taxonomy page template

我第一次在写我自己的wordpress主题。我用自定义分类法注册了一个新的帖子类型,但我无法按术语显示帖子。我复制了档案。php并将其重命名为taxonomy-[mycustomtaxonomy]。php并修改了几行。我保留了档案中的循环。php:<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php the_content(); ?> <?php