如何在Wordpress中对自定义帖子进行分类并单独显示它们

时间:2016-10-31 11:07:31

标签: wordpress

我目前正在使用Wordpress构建,这需要一个名为图库的自定义帖子类型。我很擅长使用它们。我在我的函数文件中包含了以下代码:

// Custom Gallery post type
function create_post_type_gallery()
{
    register_taxonomy_for_object_type('category', 'gallery');
    register_taxonomy_for_object_type('post_tag', 'gallery');
    register_post_type('gallery', // Register Custom Post Type
        array(
        'labels' => array(
            'name' => __('Gallery'),
            'singular_name' => __('Gallery Item'),
            'add_new' => __('Add New'),
            'add_new_item' => __('Add New Gallery Item'),
            'edit' => __('Edit', 'gallery'),
            'edit_item' => __('Edit Gallery Post'),
            'new_item' => __('New Gallery Item'),
            'view' => __('View Gallery Item'),
            'view_item' => __('View Gallery Item'),
            'search_items' => __('Search Gallery Item(s)'),
            'not_found' => __('No Gallery Items found'),
            'not_found_in_trash' => __('No Gallery item found in Trash')
        ),
        'public' => true,
        'hierarchical' => true,
        'menu_position' => 5,
        'supports' => array('title','editor','thumbnail'),
        'can_export' => true, // Allows export in Tools > Export
        'taxonomies' => array('category')
    ));
}

function create_my_taxonomies() {
    register_taxonomy(
        'gallery_category',
        'gallery',
        array(
            'labels' => array(
                'name' => 'Gallery Category',
                'add_new_item' => 'Add New Category',
                'new_item_name' => "New Gallery Type Category"
            ),
            'show_ui' => true,
            'show_tagcloud' => false,
            'hierarchical' => true
        )
    );
}

这给了我Wordpress内部的选项来制作图库帖子并为该帖子分配一个类别,但是在搜索高低之后,我找不到解决方案来在模板中的自己的循环中显示每个类别。

例如,我有一个名为' abstract '并希望仅显示该类别中的图库帖子的循环。

有人能解释一下如何做到这一点吗?我不确定我是否采用正确的方法,所以请告知我是否需要改变方法。

1 个答案:

答案 0 :(得分:1)

<?php
$args = array('post_type'=>'gallery', 'category_name' => 'abstract');
// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
    /* Restore original Post Data */
    wp_reset_postdata();
} else {
    // no posts found
} ?>

只需在wp_query对象中添加参数即可获取所需数据。 有关参考或其他预定义参数,请访 https://codex.wordpress.org/Class_Reference/WP_Query