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

WordPress自定义帖子类型类别页面未加载帖子

万俟修诚
2023-03-14

我创建了一个名为制造商的自定义帖子类型,并添加了大量帖子和类别。单个帖子页面工作,但类别/存档页面不显示任何帖子。

制造商被分成不同的类别,我需要显示每个类别中所有帖子的存档。我去工厂的时候

http://localhost/category/manufactures/ge-speedtronic/

这就是令人困惑的地方。我为自定义帖子类型“制造商”使用的类别也显示在我的其他自定义帖子类型和默认帖子部分下。所以我创建了一个名为制造商-猫的类别,其中包含子类别。这可能会导致问题。

知道哪些帖子没有加载到分类页面上吗?是否可以创建仅显示在特定帖子类型下的类别?

这段代码在my functions.php中

add_action( 'init', 'create_manufacturers' );
function create_manufacturers() {
  register_post_type( 'manufacturers',
    array(
      'labels' => array(
        'name' => __( 'Manufacturers' ),
        'singular_name' => __( 'Manufacturer' )
      ),
        'hierarchical'        => true,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'has_category'         => true, 
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
        'taxonomies'  => array( 'category' ),
        'rewrite' => array('slug' => 'manufacturers'),
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
    )
  );
}

这是mycategory.php文件中的代码。

<?php get_header();?>
<div class="container page-category-wrap">
    <div class="row">
        <div class="col-md-9">
            <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <div class="entry-content">
                    <h3><?php the_title(); ?></h3>
                    <?php the_content(); ?>
                </div>
            </article>
            <?php endwhile; endif; ?>
        </div>
        <div class="col-md-3">
            <?php dynamic_sidebar ('sidebar-1');?>
        </div>
    </div>
</div> 
<?php get_footer(); ?>

共有1个答案

梁华清
2023-03-14

您必须将您的自定义文章类型添加到查询对象:

function my_query_post_type($query) {
    if ( is_category() && ( ! isset( $query->query_vars['suppress_filters'] ) || false == $query->query_vars['suppress_filters'] ) ) {
        $query->set( 'post_type', array( 'post', 'manufacturers' ) );
        return $query;
    }
}
add_filter('pre_get_posts', 'my_query_post_type');

https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

 类似资料:
  • 我是个新手,我正在努力发展我的第一个主题。 不幸的是,我遇到了一些麻烦与自定义后类型(项目)。我已经尝试了关于这个主题的不同组合(query_post、WP_Query、同花永久链接等)。),但似乎没有一个适合我。 我尝试使用插件wp_pagenavi。 这是我的注册帖子类型,在函数中。php: 以下是模板中列出我的自定义帖子类型“projet”的代码: 目前,这段代码列出了2最后一个自定义帖子类

  • 我已经使用代码设置了WordPress自定义帖子类型。我已经设法让自定义帖子显示在“归档”页面中,但如果我单击“归档”页面中的链接,WP无法找到单个帖子页面。 我想我可能对定制的post permalinks有问题。希望有人能帮我 functions.php 页面模板 要显示自定义帖子,我设置了一个带有WP查询的新页面模板: 页面模板代码似乎工作和所有自定义帖子显示预期但当我点击标题链接我得到一个

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

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

  • 我有一个自定义的帖子类型和一个像这样创建的公文包分类法: 当我在查询中使用它时,它的工作原理应该是这样的。它显示在后端的菜单中,以及此自定义帖子类型的类别。 我的问题是,当我尝试从某个类别检索所有帖子时(通过单击类别名称),我发现

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