什么';这个数组怎么了?为functions.php中的foreach()提供的参数无效

什么';这个数组怎么了?为functions.php中的foreach()提供的参数无效,php,arrays,wordpress,foreach,redux-framework,Php,Arrays,Wordpress,Foreach,Redux Framework,我正在开发Wordpress主题,我正在使用Redux框架获取用户选项。我想根据用户选择的类别动态创建小部件。这些小部件将显示在所选特定类别前端用户的类别页面中 Redux框架正在返回包含已检查和未检查类别的数组。选中类别的值为1,未选中类别的值为0 以下是iprint\r($redcats) 在header.php中,当我运行代码仅提取包含值1的索引时,代码运行完美,并使用foreach()循环提供我想要的内容,以便我以后可以获得类别名称和类别slug,如下所示 $redcats =

我正在开发Wordpress主题,我正在使用Redux框架获取用户选项。我想根据用户选择的类别动态创建小部件。这些小部件将显示在所选特定类别前端用户的类别页面中

Redux框架正在返回包含已检查和未检查类别的数组。选中类别的值为1,未选中类别的值为0

以下是i
print\r($redcats)

header.php
中,当我运行代码仅提取包含值1的索引时,代码运行完美,并使用
foreach()循环提供我想要的内容
,以便我以后可以获得类别名称和类别slug,如下所示

    $redcats = $mythemeslug['opt_extrac_widgets_selected'];
    foreach($redcats as $key=>$val)
    {
        if($val == 1)
        {
            echo "Category is ".returncatname1($key)." | and Slug is "
           .returncatslug1($key)."</br>";
        }
    }

    function returncatslug1($id)
    {
        $category = get_category( $id );
        return $category->slug;
    }

    function returncatname1($id)
    {
        $catname = get_cat_name($id);
        return $catname;
    } 
但是当我将相同的
foreach循环
放在
functions.php
中时,会出现一个错误

Warning: Invalid argument supplied for foreach() in 
C:\xampp\htdocs\wp\wp-content\themes\**themename**\functions.php on line 111
其中第111行包含以下代码

$redcats = $mythemeslug['opt_extrac_widgets_selected'];
foreach($redcats as $key=>$val)
{
 //some codes comes in..
}
我想知道为什么在C:\xampp\htdocs\wp\wp content\themes\**themename**\functions.php的第111行收到警告:为foreach()提供的参数无效 而在
header.php
中运行相同的代码时,会给出正确的结果

请注意,
$mythemeslaug['opt\u extrac\u widgets\u selected']
是Redux框架返回的结果,我已经在
functions.php中操作了其他Redux框架选项,它们工作正常

供参考:在Redux框架选项文件中,用于获取类别的代码是

array(
    'id'       => 'opt_extrac_widgets_selected',
    'type'     => 'checkbox',
    'title'    => 'Activate Category to have its own Widgets',
    'required' => array( 'opt_extrac_widgets_set', '=', '1' ),//depends on above option.
    'data'     => 'categories'
   ),

$redcats
是一个字符串,其中的值为
$mythemeslagu['opt\u extrac\u widgets\u selected']
(除非该元素是
$mythemeslagu
的子数组)。为什么当我
print\u r
给我数组时,请在我打印($redcats)时看到这篇文章的开头
@Qirelnote并非header.php进程中可用的所有变量/函数都将在functions.php进程运行的阶段可用,您需要将代码挂接到以后的时间或定义变量。如果您在函数文件中使用var_dump,您应该看到它实际包含的内容。为了防止出现此类警告,请查看,这样可以确保您在
foreach
中放入的任何内容都可以由它处理。在执行点(functions.php)检查
$mythemeslaug
的内容-如果您没有可以设置断点的调试器,那么
var\u dump($mythemeslug)使用输出编辑您的问题
$redcats = $mythemeslug['opt_extrac_widgets_selected'];
foreach($redcats as $key=>$val)
{
 //some codes comes in..
}
array(
    'id'       => 'opt_extrac_widgets_selected',
    'type'     => 'checkbox',
    'title'    => 'Activate Category to have its own Widgets',
    'required' => array( 'opt_extrac_widgets_set', '=', '1' ),//depends on above option.
    'data'     => 'categories'
   ),