1 回答
TA贡献1946条经验 获得超4个赞
你必须做一些事情来实现你想要的。
添加自定义重写规则:首先,您必须添加自定义重写规则以检测子类别。默认情况下 WordPress 不会这样做。
function theme_custom_rewrites() {
add_rewrite_tag("%parent_category_name%", "([a-z0-9\-_]+)");
add_rewrite_rule('^category/([a-z0-9\-_]+)/([a-z0-9\-_]+)/?', 'index.php?parent_category_name=$matches[1]&category_name=$matches[2]', 'top');
add_rewrite_rule('^category/([a-z0-9\-_]+)/?', 'index.php?category_name=$matches[1]', 'top');
}
add_action('init', 'theme_custom_rewrites');
添加404状态和模板加载代码:
function load_404_page_for_subcategory_pages() {
global $wp_query;
$category_slug = get_query_var('category_name');
$parent_category_slug = get_query_var('parent_category_name');
$parent_category = get_category_by_slug($parent_category_slug);
$category = get_category_by_slug($category_slug);
if( !$parent_category && $category->parent != 0) {
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();
}
}
add_action('wp', 'load_404_page_for_subcategory_pages');
将这两个钩子添加到functions.php 文件并转到后端的设置页面并保存永久链接。它应该工作。
- 1 回答
- 0 关注
- 170 浏览
添加回答
举报