如果您使用过that 代码,现在您有了一个名为“glossary”的自定义分类法,您需要显示的范围是一个自定义查询,如
new WP_Query( array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'glossary\',
\'field\' => \'slug\',
\'terms\' => range(\'a\', \'e\')
)
)
) );
问题是
how to perform this query with a url?
您可以使用endpoint, 类似于
add_action(\'init\', \'add_glossary_range_endpoint\');
function add_glossary_range_endpoint() {
add_rewrite_endpoint( \'letters\', EP_ROOT );
}
访问链接时执行此操作
http://example.com/letters/a-e/
将变量“letters”添加到查询中,您可以截取它并使用
pre_get_posts
钩
add_action(\'pre_get_posts\', \'glossary_range_query\');
function glossary_range_query( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->get(\'letters\') ) {
$letters = explode(\'-\', $query->get(\'letters\') );
if ( count($letters) == 2 ) {
$tax_query = array(
\'taxonomy\' => \'glossary\',
\'field\' => \'slug\',
\'terms\' => range($letters[0], $letters[1])
);
$query->set(\'tax_query\', array($tax_query) );
$query->set(\'letters\', NULL );
}
}
}
现在,您必须访问后端上的“设置”->“永久链接”页面,保存更改以刷新重写规则,然后完成操作。
现在,您可能需要创建一个功能来显示指向范围页面的链接,例如:
function get_glossary_range_url( $from = \'a\', $to = \'z\' ) {
return home_url( \'/letters/\' . $from . \'-\' . $to . \'/\' );
}