我正在尝试在我的网址中为Wordpress网站设置自定义变量。我已经阅读了尽可能多的关于这个主题的内容,到目前为止我的功能页面中有以下内容:
function add_query_vars($aVars) {
$aVars[] = "mrdrct";
return $aVars;
}
// hook add_query_vars function into query_vars
add_filter('query_vars', 'add_query_vars');
以下是我的标题页:
if(isset($wp_query->query_vars['mrdrct'])) {
$mVar = $wp_query->query_vars['mrdrct'];
echo "variable is $mVar <br />";
}
只是测试一下是否正确传递了它们。但是,当我在其中使用带有url变量的链接时 - 比如www.mydomain.com/?mrdrct=myVarable - 我没有被定向到我的Wordpress网站的主页,该主页被设置为带有模板的静态页面 - 我转而直接进入一个包含我最新帖子的页面。我无法弄清楚为什么会这样 - 任何想法?希望我已经解释得这么好了。
感谢。
答案 0 :(得分:0)
当WP在URL之后看到查询字符串(?
)时,它将尝试使用它的重写规则显示匹配的帖子。如果没有匹配的帖子,则会显示404错误 - 我猜你没有404.php文件,因此WP显示默认值为index.php(有关详细信息,请参阅Wordpress Template Hierarchy)。
我不是100%确定你想要实现的目标,但我建议您在设置$wp_query->query_vars['mrdrct']
时需要查看更改查询。如果您还不熟悉,请参阅WP Codex query_posts()
以获取一个好的起点。