岗位类型&分类法相同的鼻涕虫问题


Post Type & Taxonomy same slug issue

我正在研究post_type和分类法。我为其主页创建了一个页面模板"foo_template.php",在主页中我编写了一个查询,显示了所有分类和相关的(5)五个帖子。当我点击任何分类法的新页面打开,它显示点击分类法的所有帖子标题和它的蛞蝓是"foo_taxonomy",我也为它创建了一个页面"taxonomy-foo_post.php",当我点击任何标题它去单页,我为它创建了"single-foo_post.php",它的蛞蝓是"foo_post"。

现在主要的问题是我希望文章类型和分类标签是相同的当我这样做时,我的页面布局受到干扰,它进入archive。php

我的朋友给了我一些代码,我写它,其中post_type和分类法蛞蝓是相同的,当我点击分类法页面打开新的相同的蛞蝓,但当我点击单一页面的帖子标题它显示"页面未找到"

有什么问题?我不明白

下面是我的代码:

文章类型和分类代码:

add_action('init', 'foo_articles');
function foo_articles() {
    register_post_type('foo_knowledgebase', array(
        'labels' => array(
            'name' => 'Articles',
            'singular_name' => 'Article'
        ),
        'public' => true,
        'rewrite' => array(
            'slug' => 'My_slug')
    ));
}
add_action( 'init', 'foo_taxonomies', 0 );
function foo_taxonomies() {
    register_taxonomy('foo_taxonomy', array('My_slug'), array(
        'labels' => array(
            'name' => 'Articles Category'
        ),
        'show_ui' => true,
        'show_admin_column' => true,
        'show_tagcloud' => FALSE,
        'hierarchical' => true,
        'rewrite' => array('slug' => 'My_slug', 'with_front' => TRUE)
    ));
}

对于同一段代码:

$rules = array();
    $taxonomies = get_taxonomies(array('_builtin' => false), 'objects');
    $post_types = get_post_types(array('public' => true, '_builtin' => false), 'names');
    foreach ($post_types as $post_type) {
        $post_type_data = get_post_type_object( $post_type );
        $post_type_slug = $post_type_data->rewrite['slug'];
        foreach ($taxonomies as $taxonomy) {
            if ($taxonomy->object_type[0] == $post_type_slug) {
                    $categories = get_categories(array('type' => $post_type_slug, 'taxonomy' => $taxonomy->name, 'hide_empty' => 0));
                    /* @var $category type */
                    foreach ($categories as $category) {
                        $rules[$post_type_slug . '/' . $category->slug . '/?$'] = 'index.php?' . $category->taxonomy . '=' . $category->slug;
                    }
            }
        }
    }
    $wp_rewrite->rules = $rules + $wp_rewrite->rules;
}
add_filter( 'generate_rewrite_rules', 'taxonomy_slug_rewrite' );

我的朋友说这段代码为他工作,但我不知道这里发生了什么,我复制了相同的代码。

此条件也设置为true

if ($taxonomy->object_type[0] == $post_type_slug)

但我不知道为什么我的鼻涕不工作。

请帮帮我

要实现这个目标,需要在自定义帖子类型之前定义自定义分类法。这种方法是可行的,但如果您的Taxonomy和Post具有相同的段号,则无法查看条目。

。如果您将有一个名为"press"的分类法术语和一个标题为"press"的CPT,