获取自定义帖子类型类别中的帖子

时间:2019-04-18 作者:m33bo

我有一个自定义的帖子类型,分类法是标准类别:

// Register Custom Post Type
function custom_post_type() {

$labels = array(
    \'name\'                  => _x( \'Works\', \'Post Type General Name\', \'text_domain\' ),
    \'singular_name\'         => _x( \'Work\', \'Post Type Singular Name\', \'text_domain\' ),
    \'menu_name\'             => __( \'Works\', \'text_domain\' ),
    \'name_admin_bar\'        => __( \'Works\', \'text_domain\' ),
    \'archives\'              => __( \'Item Archives\', \'text_domain\' ),
    \'attributes\'            => __( \'Item Attributes\', \'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\' ),
    \'view_items\'            => __( \'View Items\', \'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\'                 => __( \'Work\', \'text_domain\' ),
    \'description\'           => __( \'Work Description\', \'text_domain\' ),
    \'labels\'                => $labels,
    \'supports\'              => array( \'title\', \'editor\' ),
    \'taxonomies\'            => array( \'category\', \'post_tag\' ),
    \'hierarchical\'          => false,
    \'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\'           => true,
    \'exclude_from_search\'   => false,
    \'publicly_queryable\'    => true,
    \'capability_type\'       => \'page\',
    \'show_in_rest\' => true,
);
register_post_type( \'works\', $args );

}
add_action( \'init\', \'custom_post_type\', 0 );
我正在尝试列出“职位类型”类别中的所有职位。例如,我把插图作为一个类别,所以所有帖子都有插图。

<?php
if(is_category()){
    //get the category
    $category = get_category( get_query_var( \'cat\' ) );
    $cat_id = $category->cat_ID; 

    //list all posts by category
    $args = array(
       \'post_type\' => \'Works\', // the post type
       //not sure how to add category id.
    );
// The query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo \'<h2> List of posts tagged with this tag </h2>\';

    echo \'<ul>\';
    $html_list_items = \'\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        $html_list_items .= \'<li>\';
        $html_list_items .= \'<a href="\' . get_permalink() . \'">\';
        $html_list_items .= get_the_title();
        $html_list_items .= \'</a>\';
        $html_list_items .= \'</li>\';
    }
    echo $html_list_items;
    echo \'</ul>\';

} else {
    // no posts found
}
?>

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

您可以使用Category Parameters 为您的WP_Query

  • cat (int) – 使用类别id。
  • category_name (string) – 使用类别slug
  • category__and (array) – 使用类别id。
  • category__in (array) – 使用类别id。
  • category__not_in (array) – 使用类别id。

    //list all posts by category
    $args = array(
        \'post_type\' => \'works\', // NOT \'Works\'
        // Add category id like this.
       \'cat\' => $cat_id
        );
    

相关推荐

Dropdown menu for categories

当我使用下面的代码时<?php wp_nav_menu( array(\'menu\' => \'categories\' )); ?> 我可以创建一个新的菜单来列出我创建的wordpress中的所有类别。我用它在页面中间列出所有类别。我现在的问题是:有没有一种简单的方法可以为存在的每个子类别创建下拉菜单?那么,当我点击一个特定的类别时,它的子类别会显示出来吗?