自动要求PHP文件导致wp-admin错误

时间:2016-05-02 23:45:28

标签: php wordpress-theming

我一直在使用此功能自动要求目录中的PHP文件。

function req_php_files($filepath) {

  $Directory = new RecursiveDirectoryIterator($filepath);
  $Iterator = new RecursiveIteratorIterator($Directory);
  $Regex = new RegexIterator($Iterator, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH);

  $php_files = array();
  foreach ($Regex as $file) {

      array_push($php_files, $file[0]);
  }

  foreach ($php_files as $req_file) { 

    require_once $req_file; 

  }
}

直到最近由于某种原因这种情况很有效我现在在加载wp-admin时遇到错误

PHP警告:array_keys()期望参数1为数组,在第1718行的/Applications/MAMP/htdocs/vac3/wp-admin/includes/plugin.php中给出null

PHP警告:在1718行的/Applications/MAMP/htdocs/vac3/wp-admin/includes/plugin.php中为foreach()提供的参数无效

以下是我如何调用函数

$theme_path = 'wp-content/themes/' . get_template() . '/acf';
$theme_path_admin = '../wp-content/themes/' . get_template() . '/acf/';

if (!is_admin()) {

  $filepath= new SplFileInfo($theme_path);

} else {

  //filepath from admin

  $filepath= new SplFileInfo($theme_path_admin);


}

req_php_files($filepath->getRealPath()); ?>

这是/wp-admin/includes/plugin.php中的第1718行

foreach (array_keys( $_wp_submenu_nopriv ) as $key ) {

我的问题是我的函数的哪一部分是将非数组值传递给$ _wp_submenu_nopriv?

2 个答案:

答案 0 :(得分:0)

错误是说变量$ _wp_submenu_nopriv不是数组。您需要找到此变量的来源并找出传入的类型。

答案 1 :(得分:0)

这些错误似乎具有误导性。从函数

已经需要的文件中手动请求文件导致的错误

该函数需要一个加载下面的

的config.php
<?php require_once 'admin.php'; ?>
<?php require_once 'notification.php'; ?>

删除config.php文件清除了错误。