因此,我有一个很好的分层系统,涉及自定义的帖子类型和分类法。(参见Custom post types, taxonomies, and permalinks 供参考)
所以如果我在mysite上有帖子。com/taxonomy/subtaxonomy/stages很好,很管用,我可以访问mysite中的分类页面。com/分类学/亚分类学等
然而,注意到了一个bug——我可以把任何东西作为slug分类法的一部分,它仍然会放到帖子中!
例如mysite。com/LAIOAJSDJ/AOIDJKOASJD/味道很好。。。我还是会去的,没问题,但我要404!
如果slug/url中的分类术语不相关,那么使用它有什么意义?我希望它只使用一个特定的分类术语作为URL的一部分来转到帖子。。。如果帖子与分类术语不匹配,那么应该是404!!或者至少转发到正确的slug/url。。。。
编辑:
我通过设置/%category%/%postname%/…的自定义永久链接结构来测试普通的post/category函数。。。这足够好,并转发到正确的类别,这是我在上面寻找的,适合我网站的功能
下面提供的代码似乎根本不起作用,它是否与我的重写规则的设置有关?
my=自定义帖子类型
add_filter(\'rewrite_rules_array\', \'mmp_rewrite_rules\');
function mmp_rewrite_rules($rules) {
$newRules = array();
$newRules[\'my/(.+)/page/?([0-9]{1,})/?$\'] = \'index.php?mycategory=$matches[1]&paged=$matches[2]\';
$newRules[\'my/(.+)/(.+)/(.+)/?$\'] = \'index.php?my=$matches[3]\';
$newRules[\'my/(.+)/?$\'] = \'index.php?mycategory=$matches[1]\';
return array_merge($newRules, $rules);
}
答复中的代码
add_action( \'save_post\', \'mfields_set_default_object_terms\', 100, 2 );
function wpd_single_cpt_queries( $query ){
if( $query->is_singular()
&& $query->is_main_query()
&& isset( $query->query_vars[\'mycategory\'] ) ){
$tax_query = array(
array(
\'taxonomy\' => \'mycategory\',
\'field\' => \'slug\',
\'terms\' => $query->query_vars[\'mycategory\'],
)
);
$query->set( \'tax_query\', $tax_query );
}
}
add_action( \'pre_get_posts\', \'wpd_single_cpt_queries\' );
也将此用于参考代码(
How to create a permalink structure with custom taxonomies and custom post types like base-name/parent-tax/child-tax/custom-post-type-name)
我甚至使用了WP Permastructure插件来看看这是否能解决问题。。这个插件工作得很好,但它仍然是同一个问题-分类术语本身被认为是不相关的,它只是URL的填充!