$ _GET和WordPress

mar*_*cgg 15 php wordpress

我想将一个自定义的php文件添加到WordPress中以执行简单的操作.

到目前为止,我在我的主题index.php文件中:

<a href="myfile.php?size=md">link</a>
Run Code Online (Sandbox Code Playgroud)

和PHP是

<?php echo "hello world"; ?>

<?php echo $_GET["size"]; ?>

<?php echo "hello world"; ?>
Run Code Online (Sandbox Code Playgroud)

该链接一旦点击,就会显示:

hello world
Run Code Online (Sandbox Code Playgroud)

WordPress是否接管了这个$_GET功能,我需要做一些技巧才能使用它?我究竟做错了什么?

编辑:

<?echo "hello world";?>
<? 
  if (array_key_exists('size', $_GET))
    echo $_GET['size'];
?>
<?echo "end";?>
Run Code Online (Sandbox Code Playgroud)

输出:

hello world
Run Code Online (Sandbox Code Playgroud)

小智 14

看到解决方案:

为了能够添加和使用您附加到URL的自定义查询变量(例如:www.site.com/some_page/?my_var=foo- 例如使用add_query_arg()),您需要将它们添加到可用的公共查询变量中WP_Query.这些是在WP_Query实例化时构建的,但幸运的是query_vars在实际用于填充$query_vars属性之前通过过滤器WP_Query.

对于你的情况:

  function add_query_vars_filter( $vars ){
       $vars[] = "size";
       return $vars;
  }
  add_filter( 'query_vars', 'add_query_vars_filter' );
Run Code Online (Sandbox Code Playgroud)

并在您的模板页面上调用get方法:

$size_var = (get_query_var('size')) ? get_query_var('size') : false;
if($size_var){
   // etc...
}
Run Code Online (Sandbox Code Playgroud)

更多在食典委:http://codex.wordpress.org/Function_Reference/get_query_var

我希望它有所帮助!


Zen*_*hai 2

不确定这是否会显示任何内容,但尝试使用以下命令打开错误报告:

\n
<?php\n   error_reporting(E_ALL);\n   ini_set('display_errors', true);\n?>\n
Run Code Online (Sandbox Code Playgroud)\n

位于页面顶部任何其他代码之前。

\n

编辑:

\n

来自OP评论:

\n
\n

愚蠢的问题,但您确定\n正在查看文件的最新\n更改结果,而不是页面的缓存\n副本或其他内容吗?将\n“hello world”更改为其他内容。\n(抱歉抓住了救命稻草,但这\n以前发生在我身上)\xe2\x80\x93 Zenshai

\n

哈哈,进行更改的人\n没有更改\n正确的文件。现在正在运行 \xe2\x80\x93\nmarcgg

\n

对等编程失败 ^^ \xe2\x80\x93 marcgg

\n

那将是一个“或某事”,\n无法告诉你我已经\n做过多少次类似的事情。很高兴\n你最终能够弄清楚。\n\xe2\x80\x93 Zenshai

\n
\n

通常,只有当这些错误开始违背我对语言或环境的了解时,我才会发现这些错误。

\n