我正在尝试修改一些代码calling a custom template via rewrite rule.
我有一个称为“状态”的自定义分类法。我想为分类法创建一个归档,列出该分类法中的所有术语。
http://www.site.com/state
将加载我的自定义模板,在那里我可以查询术语并循环浏览它们。
阿拉巴马州阿拉巴马州阿拉巴马州阿拉斯卡利桑纳市阿尔金萨斯等
我知道如果我也有一个名为“state”的页面,可能会发生一些冲突,但这是我可以冒的风险。
教程中的代码对于
http://www.site.com/state/1
或http://www.site.com/state/2
但如果没有捕获到数字,则返回404。
如果术语列表失控,这个数字将有利于分页。
代码如下:
add_action(\'admin_init\', \'handle_taxonomy_route\');
function handle_taxonomy_route()
{
add_rewrite_rule(\'^state/([^/]+)/?\', \'index.php?state_var=$matches[1]\', \'top\');
}
add_filter(\'init\', \'declare_vars\');
function declare_vars()
{
add_rewrite_tag(\'%state_var%\', \'([^&]+)\');
}
add_filter(\'template_include\', \'my_template\', 1, 1);
function my_template($template)
{
global $wp_query;
if (isset($wp_query->query_vars[\'state_var\'])) {
return dirname(__FILE__) . \'/state-list.php\';
}
return $template;
}
从我迄今为止的尝试来看,它似乎与
http://www.site.com/state/alabama
阿拉巴马州在州分类学中是一个术语,但它绝对应该只捕捉数字。
去年,一个类似的问题没有得到回答。How do I list terms of a custom taxonomy at i.e. domain.com/brands/
最合适的回答,由SO网友:helgatheviking 整理而成
我需要一个更好的重写规则来正确分页。
function kia_custom_rewrite() {
// registers the state_var query variable
add_rewrite_tag(\'%state_var%\',\'([^&]+)\');
// handles site.com/state and pagination such as site.com/state/page/2
add_rewrite_rule(
\'state(/page/([0-9]+)?)?/?$\',
\'index.php?state_var=all&paged=$matches[2]\',
\'top\'
);
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_action( \'init\', \'kia_custom_rewrite\', 99 );
重写规则在此处添加要检查的query\\u var:
/*
* Load custom templates
* 1. Get a custom template for the /state "page"
* 2. Get a custom template for the /state/some-state term
*/
function kia_template( $template ){
global $wp_query;
if ( \'all\' == get_query_var(\'state_var\') ) {
$template = get_stylesheet_directory() . \'/taxonomy-state-list.php\';
}
return $template;
}
add_filter( \'template_include\', \'kia_template\' );