Php wordpress模板标题中定义的变量在get_标题下不可访问
在我的wordpress theme header.php文件的最顶端运行一个简单的表单:Php wordpress模板标题中定义的变量在get_标题下不可访问,php,wordpress,Php,Wordpress,在我的wordpress theme header.php文件的最顶端运行一个简单的表单: <?php //deal with theme embeded forms if ($_POST['enquery_page_loop']) { $call_time = $_POST['call_time']; $f_name = $_POST['r_name']; $email = $_POST['email']; $phone = $_POST['phone']
<?php
//deal with theme embeded forms
if ($_POST['enquery_page_loop']) {
$call_time = $_POST['call_time'];
$f_name = $_POST['r_name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$admin_email = get_option('admin_email');
$message = "A callback request has been recieved.\r\n\r\n";
$message .= "Name: ".$f_name."\r\n";
$message .= "Time to Call: ".$call_time."\r\n";
$message .= "Email: ".$email."\r\n";
$message .= "Phone: ".$phone."\r\n";
mail ($admin_email, "A Callback request was recieved via the website", $message, 'FROM:'.$admin_email);
$loop_mail_done = '1';
echo $loop_mail_done;
}
?>
在page.php文件中调用
后,$loop\u mail\u完成代码>变量完全不可访问,就好像从未定义过一样。然而,当我从header.php文件的底部回显它时,它的定义是正确的
我无法理解我是如何失去这个变量的。
我已检查/尝试:
- 声明
global$loop\u mail\u已完成
- 正确的范围(据我所知)
- 已检查变量上的
unset
或类似操作
设置
global $loop_mail_done;
在使用此变量之前,请同时在page.php和header.php中。正如使用
global $loop_mail_done;
在这两个文件中,将解决问题
问题的原因是header.php和page.php/index.php等都是在页面呈现时由函数调用的。虽然在你看来你好像在同一个范围内写了一些东西,但它们实际上是两个独立函数中的两个变量
另一种方法是使用$GLOBALS存储变量,但声明为全局变量也可以。干杯!顺便说一句,你知道我为什么不在范围内吗?不,不是Wordpress内部专家:)