主查询未查询自定义分类模板中的任何帖子

时间:2018-02-20 作者:Connor

我已经为我的自定义分类法创建了一个模板,byron_community_cat. 我已经给它命名了taxonomy-byron_community_cat.php. 我的问题是,当使用默认WordPress循环时,它不会显示任何帖子。我已经创建了一些帖子,并将它们添加到这个分类法中的一个术语中。下面是我的帖子类型和分类代码。

/**
 * Registers the Community post type
 * @return void
 */
function byron_community_register()
{
    register_post_type(\'byron_community\', [
        \'labels\' => [
            \'name\' => __(\'Community posts\', \'byroncommunity\'),
            \'singular_name\' => __(\'Community post\', \'byroncommunity\'),
        ],
        \'public\' => true,
        \'exclude_from_search\' => true,
        \'show_in_nav_menus\' => false,
        \'menu_position\' => 40,
        \'taxonomies\' => [\'byron_community_cat\'],
        \'menu_icon\' => \'dashicons-groups\',
        \'supports\' => [\'title\', \'editor\', \'thumbnail\', \'excerpt\'],
        \'has_archive\' => __(\'community\', \'byroncommunity\'),
        \'rewrite\' => [
            \'slug\' => __(\'community\', \'byroncommunity\'),
            \'with_front\' => false,
        ],
    ]);
}
add_action(\'init\', \'byron_community_register\');

/**
 * Registers the Community category taxonomy for the Community post type
 * @return void
 */
function byron_community_register_category()
{
    register_taxonomy(\'byron_community_cat\', \'byron_community\', [
        \'public\' => true,
        \'hierarchical\' => true,
        \'show_admin_column\' => true,
        \'rewrite\' => [
            \'slug\' => \'community_category\',
            \'with_front\' => false
        ]
    ]);
    register_taxonomy_for_object_type(\'byron_community_cat\', \'byron_community\');
}
add_action(\'init\', \'byron_community_register_category\');
我在分类法模板中使用默认循环,但它不显示任何帖子:

if (have_posts()) {
    while (have_posts()) {
        the_post();
        //HTML stuff...
    }
}
正在选择正确的模板,因为循环外的更改会反映在页面上。我不知道我做错了什么,我怀疑这可能与我注册分类法的方式有关。任何帮助都将不胜感激。

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

我认为这里的问题是,注册帖子类型时exclude_from_search 为真。

请参阅WordPress Coedex:

注意:如果要显示与分类法术语关联的帖子列表,必须将exclude\\u from\\u search设置为false(即:for call site\\u domaine/?taxonomy\\u slug=term\\u slug或site\\u domaine/taxonomy\\u slug/term\\u slug)。如果设置为true,WordPress将在分类页面(例如:taxonomy.php)上找不到您的帖子和/或分页将产生404错误。。。

结束

相关推荐

Use of Templates in a Plugin

我正在创建一个插件。为此,我编写了自己的模板。现在我想在我的插件目录中创建模板文件。但这并不管用。由于我使用了插件目录,wordpress doesent知道我的模板是wp templates。让WP知道这些文件是wordpress模板的最佳方式是什么?感谢您的回答:)