自定义帖子类型下的类别未正确显示

时间:2014-02-17 作者:user3067592

我在我的网站中使用了自定义帖子类型:我添加了archive-{mytaxonomy}.php 还有single-{mytaxonomy}.php.

我还为我的分类法创建了一个单独的侧栏,在单击其中一个类别之前,一切看起来都很好。然后加载archive.php.

我应该在文件中添加其他代码吗?

3 个回复
SO网友:Brad Dalton

类别和分类法并不完全相同。

类别是default taxonomy

您可以将类别与自定义帖子类型一起使用,但最好使用自定义分类法,因为事实上,它们是以各种方式对各种项目进行分组的一种非常强大的方式。

add_action( \'init\', \'wpsites_custom_taxonomy_types\' );
function wpsites_custom_taxonomy_types() {

register_taxonomy( \'cpt-type\', \'cpt\',
    array(
        \'labels\' => array(
            \'name\'          => _x( \'Types\', \'taxonomy general name\', \'themename\' ),
            \'add_new_item\'  => __( \'Add New CPT Type\', \'themename\' ),
            \'new_item_name\' => __( \'New CPT Type\', \'themename\' ),
        ),
        \'exclude_from_search\' => true,
        \'has_archive\'         => true,
        \'hierarchical\'        => true,
        \'rewrite\'             => array( \'slug\' => \'cpt-type\', \'with_front\' => false ),
        \'show_ui\'             => true,
        \'show_tagcloud\'       => false,
    )
);

}
如果您添加了如上所述的代码,其中添加了创建自定义分类类型的选项,那么您需要创建一个名为以下内容的文件:

taxonomy-cpt-type.php
其中,cpt是自定义帖子类型的名称。

您可以在子主题函数文件中使用上述代码,并用自定义帖子类型的名称替换所有cpt和cpt实例。

您还需要将此行添加到注册自定义帖子类型的代码中:

\'taxonomies\'   => array( \'cpt-type\' ),
下面是一个工作示例:

add_action( \'init\', \'wpsites_custom_post_type\' );
function wpsites_custom_post_type() {

register_post_type( \'cpt\',
    array(
        \'labels\' => array(
            \'name\'          => __( \'CPT\', \'wpsites\' ),
            \'singular_name\' => __( \'CPT\', \'wpsites\' ),
        ),
        \'has_archive\'  => true,
        \'hierarchical\' => true,
        \'menu_icon\'    => \'dashicons-portfolio\',
        \'public\'       => true,
        \'rewrite\'      => array( \'slug\' => \'cpt\', \'with_front\' => false ),
        \'supports\'     => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'trackbacks\', \'custom-fields\', \'revisions\', \'page-attributes\' ),
        \'taxonomies\'   => array( \'cpt-type\' ),

    )
);

}
同样,用自定义帖子类型的名称替换cpt和cpt的所有实例。

对于自定义post类型的存档页,请使用以下内容:

archive-cpt.php
对于自定义post类型的单页,请使用以下内容:

single-cpt.php
同样,将文件名中的cpt替换为自定义帖子类型的名称。

SO网友:HeroWeb512

要获取具有特定类别的自定义帖子类型,请使用自定义分类法注册自定义帖子类型类类别的分类法名称,然后在添加新帖子时为每个帖子分配一个类别。下面是自定义帖子类型新闻及其分类news\\u类别的代码示例

  add_action( \'init\', \'news_my_taxonomy\');
  function news_my_taxonomy(){
 // custom post type taxonomies
    $labels = array(
    \'name\' => \'Categories\',
    \'singular_name\' => \'Category\',
    \'add_new\' => \'Add Category\',
    \'add_new_item\' => \'Add New Category\',
    \'all_items\' => \'All Categories\',
    \'edit_item\' => \'Edit Item\',
    \'new_item\' => \'New Item\',
    \'view_item\' => \'View Item\',
    \'update_item\' => \'Update Category\',
    \'search_items\' => \'Search Categories\',
    \'not_found\' => \'No record found\',
    \'not_found_in_trash\' => \'No items found in trash\',
    \'parent_item_colon\' => \'Parent Item\',
    \'menu_name\' => \'Categories\'
    );
    $args = array(
        \'labels\' => $labels,
        \'hierarchical\' => true,
        \'has_archive\' => true,
        \'rewrite\' => array(\'slug\' => \'news_category\'),
        \'show_ui\' => true,
        \'show_admin_column\' => true,
        \'query_var\' => true,
        );
        register_taxonomy(\'news_category\', array(\'news\'), $args);
}
然后创建分类模板页面“taxonomy-news\\u类别”。php“

并添加查询以获取具有此类别名称的帖子

   $cat_name = single_cat_title;
   $args = array( \'category_name\' => $cat_name, \'posts_per_page\' => 12, \'order\'=> \'ASC\', \'post_type\' => \'news\', \'paged\' => $paged);
就是这样。

SO网友:Mohsen Abdelhameed

如果您使用“自定义帖子类型UI”插件创建自定义帖子类型,请确保已将“Has Archive”选项更改为True;如果您手动创建自定义帖子类型,请确保已将“Has\\u Archive”=>True“添加到数组中。

然后,假设您添加了一个名为“Movies”的新自定义帖子类型,然后您添加了一个与之链接的新分类法,其中slug被称为“流派”,并在流派中添加了一个新术语,slug被称为“恐怖”,您想为“恐怖”创建一个特定的模板,然后您可以创建一个名为“分类法-{taxonomy}-{term}.php”的模板。

在这种情况下,模板应命名为分类流派恐怖。php

结束

相关推荐

WordPress无法打开主题-editor.php

我有一个网站RadhanathSwami。信息。我使用“RadhanathSwami.info/wp admin”登录为管理员。然后我尝试了“radhanathswami.info/wp-admin/theme-editor.php” You do not have sufficient permissions to access this page. 我不知道该怎么办。我在google上搜索了很多,但没有多少帮助。我没有访问服务器的权限不是ftp。我所能做的就是从管理仪表板。我使用的是主题滨