我有一个以前见过的问题,但没有一个答案能解决我的问题。这是我以前遇到过的问题,但从未设法解决。
我有一个干净的 Wordpress 安装,并且在functions.php
文件中我创建了一个自定义帖子类型
register_nav_menu('main', 'Main navigation menu');
function add_custom_post_type() {
$labels = array(
'name' => _x('Books', 'post type general name'),
'singular_name' => _x('Book', 'post type singular name'),
'add_new' => _x('Add New', 'book'),
'add_new_item' => __('Add New Book'),
'edit_item' => __('Edit Book'),
'new_item' => __('New Book'),
'all_items' => __('All Books'),
'view_item' => __('View Book'),
'search_items' => __('Search Books'),
'not_found' => __('No books found'),
'not_found_in_trash' => __('No books found in Trash'),
'parent_item_colon' => '',
'menu_name' => __('Books')
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);
register_post_type('book', $args);
}
我已经为这些文件制作了一个模板文件archive-book.php
,single-book.php
一切正常。当我转到“http://localhost/wordpress/book”时,我可以查看书籍现在我想创建一个自定义分类法,所以我也这样做了functions.php
:
add_action('init', 'add_custom_post_type');
function add_custom_taxonomy() {
register_taxonomy(
'rating',
'book',
array(
'label' => 'Rating',
'hierarchical' => true,
'show_ui' => true,
'query_var' => 'book',
'has_archive' => true,
'rewrite' => array(
'slug' => 'book/rating'
)
)
);
}
分类显示在管理页面中,我可以添加新术语,并将它们添加到书籍中。但现在问题来了。我想查看所有书籍的概述,比如说,评分为“nice”,我会转到“http://localhost/wordpress/book/rating/nice”。我创建了以下模板文件:taxonomy-rating-nice.php、taxonomy-rating.php 和 taxonomy.php。
但不知何故,wordpress 只显示了 index.php 文件,并没有列出任何书籍。我试过用以下方法刷新重写规则:
add_action('init', 'custom_taxonomy_flush_rewrite');
function custom_taxonomy_flush_rewrite() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
和:
flush_rewrite_rules(false);
但似乎没什么帮助。
那么,有人可以帮助我吗?如果您需要更多信息,请告诉我,因为我真的很想解决这个问题!