我正在开发自定义的wordpress模板。我有一些用于布局的页面模板。分别在页面模板的顶部和底部调用get_header()和get_footer()。
【即使调用get_header(),也无法通过页面模板访问wordpress header.php中包含的文件】现在的问题是。我在header.php文件中使用了两个或三个require_once()来包含php类文件。在其中一个包含的文件中, 我为包含的类文件创建了一个对象。但是, 当我在页面文件(在其中使用get_header()的位置)中调用这些对象时, 它表示未定义的变量。
这是我的wordpress header.php
// THIS IS MY header.phpini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if(session_id() == '')session_start();
date_default_timezone_set('Asia/Dubai');
require_once('risk-profiler/configuration.php');
// Config filerequire_once('risk-profiler/dal.php');
// One class filesrequire_once('risk-profiler/bl.php');
// another class filerequire_once('risk-profiler/form_handler.php');
// Were Objects for the classes are created?>
form_handler.php
if (!isset($data))$data = http://www.srcmini.com/new DataAccessLayer(sql_server, sql_user, sql_password, sql_database);
if (!isset($bl))$bl = new businessLogic;
$ data是数据库类的对象, 而$ bl是另一个类的对象。
现在这是我调用get_header()risk_profile_questionnaire.php的地方, 我在此文件(窗体)中包括了两种形式(risk-profile-select-profiling-country.php和another.php), 这是我称该对象的地方, 不是无障碍。
risk_profile_questionnaire.php与
<
div class="form-group">
<
label for="" class="col-md-4 control-label">
Country : <
/label>
<
div class="col-sm-8">
<
select class="form-control input-lg" name="version_details">
<
?php$version_details = $data->
get_version_list();
while ($row = mysqli_fetch_array($version_details)) {echo"<
option value='" . $row['country_code'] . "|" . $row['version'] . "'>
" . $row['country_name'] . "<
/option>
";
}?>
<
/select>
<
/div>
<
/div>
任何人都可以帮助我解决为什么当时无法访问我的对象的问题。
#1我现在无法测试, 但是我的猜测是这是由于变量范围所致。
如果要在PHP的函数内使用全局变量, 则需要在函数开始时将其声明为全局变量。
由于你要从函数” get_header” 中包含header.php(以及header.php中包含的其余文件), 因此默认情况下, 变量仅限于” get_header” 函数的范围。
尝试在header.php文件的开头声明需要使用的全局变量, 例如:
global $data;
PHP中的变量范围:http://php.net/manual/en/language.variables.scope.php
推荐阅读
- PostgreSQL 数据库常用操作
- 在Chrome和Chrome上预先登录WordPress主题(avada)时出错
- 致命错误(找不到类”WP_Customize_Control”)
- 加载资源失败(服务器响应,状态为404 Not Found)
- WordPress自定义帖子中面临错误
- WP排除多个页面模板
- 在相关的Post WordPress中排除草稿发布
- 错误WordPress jQuery表单错误说未引用函数()
- esc_attr()和sanitize_text_field()之间的确切区别