这个index.php
您看到的不是模板文件。它被指向index.php
您在WordPress安装的根目录中看到的文件。
How does the pretty URL translate into a template file
<当某人访问您网站上的URL时
.htaccess
将与实际文件不匹配的所有请求重定向到
index.php
启动整个WordPress流程rewrite rules 使用正则表达式找到匹配项后,WordPress会将规则的正则表达式转换为查询字符串。如果禁用漂亮的URL,WordPress将在URL中使用相同的查询字符串然后将查询字符串解析为
query vars 这些是定义的变量。它还将填充任何隐含变量然后是默认值
WP_Query
主循环中使用的对象是基于查询变量创建的然后WordPress根据查询变量或使用
template_redirect
挂钩
How do you override this
在不完全了解您想要做什么的情况下,我将按原样回答您的问题。对于您正在做的事情,可能有一些优化。
我们将添加自定义重写规则。您需要更新永久链接以应用更改。
function my_custom_rewrite_rules( $rewrite ) {
$rewrite->rules[\'portfolio/php/wordpress\'] = \'index.php?my_portfolio=1&galid=3\';
}
add_action( \'generate_rewrite_rules\', \'my_custom_rewrite_rules\' );
因为我们正在使用自定义
query var my_portfolio
, 我们需要在WordPress注册它。
function my_custom_query_vars( $vars ) {
$vars[] = \'my_portfolio\';
return $vars;
}
add_filter( \'query_vars\', \'my_custom_query_vars\' );
现在我们可以告诉WordPress在查询变量
my_portfolio
是真的。要使用我们的模板,我们使用
locate_template
查看模板是否存在,然后调用它。如果模板存在,则返回
true
告诉我它被找到了。
function my_custom_template_redirect() {
global $wp_query;
if ( $wp_query->get( \'my_portfolio\' ) && locate_template( \'portfolio-inner.php\', true ) ) {
exit;
}
}
add_action( \'template_redirect\', \'my_custom_template_redirect\' );