首页 > 解决方案 > wordpress - 按类别查询自定义帖子类型

问题描述

我正在尝试通过其类别 slug 查询自定义帖子类型,但它根本不起作用,它总是返回空白 - 就像没有结果

我的自定义帖子类型定义:

add_action( 'init', 'custom_post_albuns' );
 
// The custom function to register a movie post type
function custom_post_albuns() {
 
  // Set the labels, this variable is used in the $args array
  $labels = array(
    'name'               => __( 'Albuns' ),
    'singular_name'      => __( 'Album' ),
    'add_new'            => __( 'Add New Album' ),
    'add_new_item'       => __( 'Add New Album' ),
    'edit_item'          => __( 'Edit Album' ),
    'new_item'           => __( 'New Album' ),
    'all_items'          => __( 'All Albuns' ),
    'view_item'          => __( 'View Album' ),
    'search_items'       => __( 'Search Albuns' ),
    'featured_image'     => 'Featured Image',
    'set_featured_image' => 'Add Featured Image'
  );
 
  // The arguments for our post type, to be entered as parameter 2 of register_post_type()
  $args = array(
    'labels'            => $labels,
    'description'       => 'm6 Records Albuns',
    'public'            => true,
    'menu_position'     => 6,
    'supports'          => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments', 'custom-fields' ),
    'has_archive'       => true,
    'show_in_admin_bar' => true,
    'show_in_nav_menus' => true,
    'has_archive'       => true,
    'menu_icon'         => 'dashicons-album',
    'query_var'         => 'album'
  );
 
  // Call the actual WordPress function
  // Parameter 1 is a name for the post type
  // Parameter 2 is the $args array
  register_post_type( 'album', $args);
}

add_action( 'init', 'create_album_taxonomies', 0 );

function create_album_taxonomies() {
    $labels = array(
        'name'              => _x( 'Categories', 'taxonomy general name' ),
        'singular_name'     => _x( 'Category', 'taxonomy singular name' ),
        'search_items'      => __( 'Search Categories' ),
        'all_items'         => __( 'All Categories' ),
        'parent_item'       => __( 'Parent Category' ),
        'parent_item_colon' => __( 'Parent Category:' ),
        'edit_item'         => __( 'Edit Category' ),
        'update_item'       => __( 'Update Category' ),
        'add_new_item'      => __( 'Add New Category' ),
        'new_item_name'     => __( 'New Category Name' ),
        'menu_name'         => __( 'Categories' ),
    );

    $args = array(
        'hierarchical'      => true, // Set this to 'false' for non-hierarchical taxonomy (like tags)
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array( 'slug' => 'albuns' ),
    );

    register_taxonomy( 'albuns_categories', array( 'album' ), $args );
}

和我的查询:

$argsPost = array(
                    'post_type'=>'album', 
                    'orderby'=>'date',
                    'order'   => 'DESC',
                    'posts_per_page'=>'4',
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'albuns_categories',
                            'field' => 'slug', 
                            'terms' => array( 'ANYTERM' ) 
                        )
                    )
                  );

而且我不能带一份 albuns 列表(如果我删除 tax_query 部分,它会返回给我所有“albuns”自定义帖子类型)。有人有什么想法吗???

谢谢!!

标签: wordpresscustom-post-type

解决方案


你可以试试

$argsPost = array(
    'post_type'=>'album', 
    'orderby'=>'date',
    'order'   => 'DESC',
    'posts_per_page'=>'4',
    'tax_query' => array(
        array(
            'taxonomy' => 'albuns_categories',
            'field' => 'slug', 
            'terms' => array( 'ANYTERM' ),
            'operator' => 'IN'
        )
    )
);

推荐阅读