当前位置: 首页 > 知识库问答 >
问题:

从自定义帖子类型类别中列出帖子?

许学真
2023-03-14

我有一个自定义的帖子类型和一个像这样创建的公文包分类法:

    $args = array(
        'label' => __('Portfolio', 'my-portfolio'),
        'labels' => array(
            'add_new_item' => __('New portfolio', 'my-portfolio'),
            'new_item' => __('New portfolio', 'my-portfolio'),
            'not_found' => __('No portfolio items', 'my-portfolio'),
        ),
        'singular_label' => __('Portfolio', 'my-portfolio'),
        'menu_icon' => 'dashicons-portfolio',
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => true,
        'has_archive' => true,
        'exclude_from_search' => true,
        'show_in_nav_menus' => false,
        'supports' => array('title', 'editor', 'thumbnail'),
        'rewrite' => array('slug' => 'portfolio', 'with_front' => false),
        'register_meta_box_cb' => 'add_remove_metaboxes_portfolio',
       );

    //Register type and custom taxonomy for type.
    register_post_type( 'portfolio' , $args );
    register_taxonomy("portfolio-category", array("portfolio"), array("hierarchical" => true, "label" => "Categories", "singular_label" => "Category", "rewrite" => true, "slug" => 'portfolio-category',"show_in_nav_menus"=>false));

当我在查询中使用它时,它的工作原理应该是这样的。它显示在后端的菜单中,以及此自定义帖子类型的类别。

我的问题是,当我尝试从某个类别检索所有帖子时(通过单击类别名称),我发现没有找到任何帖子。对不起 在我的页面上。

该页面是一个默认的wordpress存档,应该只列出所有帖子,但没有显示任何内容。url如下所示:

http://xampp/my-theme/?portfolio-类别=动物

但即使我使用post name permalinks,也没有任何效果。

我读过CSS技巧,我可以在functions.php

function namespace_add_custom_types( $query ) {
  if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
    $query->set( 'post_type', array(
     'post', 'portfolio', 'nav_menu_item'
        ));
      return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );

但这也于事无补。我错过了什么?


共有1个答案

司寇飞航
2023-03-14

您必须为自定义帖子类型使用归档页面模板。请把代码放在自定义的帖子类型中

$args = array(
        'label' => __('Portfolio', 'my-portfolio'),
        'labels' => array(
            'add_new_item' => __('New portfolio', 'my-portfolio'),
            'new_item' => __('New portfolio', 'my-portfolio'),
            'not_found' => __('No portfolio items', 'my-portfolio'),
        ),
        'singular_label' => __('Portfolio', 'my-portfolio'),
        'menu_icon' => 'dashicons-portfolio',
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => true,
        'has_archive' => true,
        'exclude_from_search' => true,
        'show_in_nav_menus' => false,
        'supports' => array('title', 'editor', 'thumbnail'),
        'rewrite' => array('slug' => 'portfolio', 'with_front' => false),
        'register_meta_box_cb' => 'add_remove_metaboxes_portfolio',
       );

    //Register type and custom taxonomy for type.
    register_post_type( 'portfolio' , $args );
flush_rewrite_rules();
 类似资料:
  • 我创建了一个名为制造商的自定义帖子类型,并添加了大量帖子和类别。单个帖子页面工作,但类别/存档页面不显示任何帖子。 制造商被分成不同的类别,我需要显示每个类别中所有帖子的存档。我去工厂的时候 http://localhost/category/manufactures/ge-speedtronic/ 这就是令人困惑的地方。我为自定义帖子类型“制造商”使用的类别也显示在我的其他自定义帖子类型和默认帖

  • 我有两个不同类别的自定义帖子类型(公文包),然后我有两个页面显示两个类别的帖子。 我调用页面时的url类似于mysite.com/pagename,其中pagename与公文包类别同名。 我的问题是,当我进入单一公文包时,url会变成mysite.com/portfolio/portfolio-name 有没有办法在url中显示投资组合类别?应该像mysite.com/portfolio-cate

  • 我已经创建了一个自定义的帖子类型“Shop”,其中包含商店类别的自定义分类法 对于我的商店类别存档页面,我希望URL结构为: example.com/shop/tech/(代替example.com/shop/category/tech/) 我希望商店的帖子example.com/shop/shop-post-title-example 我尝试了下面的代码并保存了永久链接,但当我访问商店帖子时,它

  • 本文向大家介绍WordPress 3.0中的自定义帖子类型,包括了WordPress 3.0中的自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 本文与WordPress 3.0相关。此处发布的许多代码在以前的版本中将不起作用,并且某些信息可能会在较新的版本中更改。 WordPress已经在系统中内置了五种不同的内容类型。 帖子 这是标准的内容类型,通常是博客安装中使用最多的内容。帖子往往会

  • 本文向大家介绍WordPress 注册自定义帖子类型,包括了WordPress 注册自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 示例 假设您有一个图书馆网站,并且想要一个名为Books的自定义帖子类型。可以注册为 如此简单,您现在就注册了一个自定义帖子类型。 该代码段可以放在主题functions.php文件中,也可以放在插件结构中。

  • 我希望能够将我的WooCommerce产品发布到我的“帖子”类别中。基于下面的鳕鱼,这是可能的。这是我在functions.php.中使用的代码。当我用吴宇森制作新产品时,这些类别是可以点击的。然而,它并没有发布到类别本身。感谢对此事的任何见解。 将类别选择添加到自定义帖子类型