我想为其中一个URL创建一个类别归档,尽管有匹配的路由和模板,我还是想到了404。
我正在浏览核心WordPress代码(groan),但还没有弄清楚在哪里调用路由。
类别似乎是由query.php
在parse_query
函数,但我看不到用于将URL映射到文件的路由的位置。
我想为其中一个URL创建一个类别归档,尽管有匹配的路由和模板,我还是想到了404。
我正在浏览核心WordPress代码(groan),但还没有弄清楚在哪里调用路由。
类别似乎是由query.php
在parse_query
函数,但我看不到用于将URL映射到文件的路由的位置。
parse_query
是完成大部分工作的地方。查询变量和is_
设置了条件,并且template-loader.php
检查一下is_
加载相应模板的条件标记。
除了米洛的回答:在wp::parse_request()
请求URI与中存储的重写规则相匹配$GLOBALS[ \'wp_rewrite\' ]->rules
. 这意味着»路由«将被解析为查询变量。实际匹配规则存储在$GLOBALS[ \'wp_rewrite\' ]->matches
这对调试很有帮助:
add_action( \'wp_footer\', function() {
echo \'<pre>\';
var_dump( $GLOBALS[ \'wp_rewrite\' ]->rules );
var_dump( $GLOBALS[ \'wp_rewrite\' ]->matches );
echo \'</pre>\';
} )
我知道我可以在WP\\u查询中使用REGEXP,如下所示:$query = new WP_Query(array( \'posts_per_page\' => -1, \'post_status\' => \'publish\', \'meta_query\' => array( array( \'key\' => \'custom_fields\',