我一直在努力,已经找到了一个我满意的解决方案。我希望它在WordPress级别上有意义!
我已经决定在URL中保留分类术语,我希望尽可能少地干扰默认WordPress行为,并且URL仍然可以读取。(例如:www.mysite.com/club/juggling club)
我已使用重写规则来解析我的post\\u类型查询变量(例如:www.mysite.com/club/juggling club/?post\\u类型=事件变为www.mysite.com/club/juggling club/events,以仅列出杂耍俱乐部的事件)
function mytest_rewrite_rule() {
add_rewrite_rule(
\'club/([\\-\\w+]*)/([\\w+]*)/?$\',
\'index.php?club=$matches[1]&post_type=$matches[2]\',
\'top\'
);
}
add_action(\'init\', \'mytest_rewrite_rule\', 10, 0);
为了延续这种结构,我希望我的自定义帖子有一个url www.mysite。com/俱乐部/杂耍俱乐部/活动/赞助杂耍。在以下人员的帮助下
this post 我在cpt的重写slug(club/%club%/事件)中创建了一个自定义术语,它支持我的url模式。WordPress需要一些代码来处理这个问题:
function mytest_cpt_rewrite( $link, $post ) {
if ( $post->post_type === \'events\' ) {
if ( $terms = get_the_terms( $post->ID, \'club\' ) )
$link = str_replace( \'%club%\', current( $terms )->slug, $link );
}
return $link;
}
add_filter( \'post_type_link\', \'mytest_cpt_rewrite\', 10, 2 );
总之,我得出了一个逻辑结构:
www.mysite。com/club/juggling club将是一个通用的俱乐部登录页www.mysite。com/club/juggling club/events-显示所有自定义帖子类型
www.mysite。com/俱乐部/杂耍俱乐部/活动/赞助杂耍-显示特定帖子
我正在考虑在发布时选择俱乐部,因为内容总是需要属于俱乐部,这应该保护我创建的URL模式。
我将了解模板的使用情况,我还计划将分类术语作为主体css类注入,以帮助对某些元素进行有针对性的样式设计。
欢迎任何进一步的意见和想法!我希望这有助于组织内容。