如果要在存档后过滤音频课程,可以从我链接到的文章中借用,并添加自定义重写规则:
function wpa_add_rewrite_rules() {
global $wp_rewrite;
$new_rules = array(
\'audio-lessons/language/(.+)/?$\' => \'index.php?post_type=audio-lesson&language=\' . $wp_rewrite->preg_index(1)
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( \'generate_rewrite_rules\', \'wpa_add_rewrite_rules\' );
在重新保存永久链接后
http://example.com/audio-lessons/language/english
将显示所有英语音频课程。
但是,我不确定您提供的URL是帖子类型存档,而不是自定义页面模板。
如果它是一个页面模板,并且您正在运行多个Wp_Query()
调用您可以注册一个新的查询变量并构建tax_query
从那以后。
function wpa_add_new_query_vars($vars) {
$vars[] = \'language\'; // name of variable you want to add
return $vars;
}
add_filter( \'query_vars\', \'wpa_add_new_query_vars\', 10, 1 );
您甚至可能不需要这一部分,因为我认为在注册分类法时,查询变量已经注册。
然后您可以这样查询帖子:
$args = array(
\'post_type\' => \'audio-lesson\'
);
if( $lang = get_query_var( \'language\' ) ){
$args[\'tax_query\'] = array( array(
\'taxonomy\' => \'language\',
\'field\' => \'slug\',
\'terms\' => \'$lang\'
));
}
$my_posts = new WP_Query( $args );
我不能真正测试这个和
tax_query
有时它的数组会让我受挫,所以我不能百分之百肯定它会工作。
然后在任何你想链接到你可以使用的特定语言部分的地方add_query_arg()