Что не так с этим массивом? давая мне неверный аргумент для foreach() в functions.php

Я занимаюсь разработкой Wordpress Theme, я использую Redux Framework для получения пользовательских опций. Я хочу создавать виджеты динамически в зависимости от того, какую категорию выбрал пользователь. Эти виджеты будут отображаться на странице категорий в выбранном пользовательском интерфейсе определенной категории.

Redux Framework возвращает массив с проверенными и непроверенными категориями. Проверенные категории имеют значение 1, а непроверенные - 0

Ниже приводится вывод, когда я print_r($redcats)

Array
(
    [14] => 1
    [13] => 1
    [7] => 0
    [1] => 1
)

В header.php когда я запускаю код только для извлечения индексов, которые содержат значение 1, код работает отлично и дает мне то, что я хочу использовать foreach() loop так что я могу получить название категории и категорию пули позже, как показано ниже,

    $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;
    } 

Ниже приведен вывод, так как я запустил целые коды в header.php Сначала проверьте, все ли работает хорошо:

Category is History | and Slug is history
Category is My Gossipz | and Slug is my-gossipz
Category is Uncategorized | and Slug is uncategorized

но когда я ставлю то же самое foreach loop в 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..
}

Интересно, почему я получаю Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\wp\wp-content\themes\**themename**\functions.php on line 111пока в header.php когда я запускаю тот же код, дают правильные результаты..

Обратите внимание, что, $mythemeslug['opt_extrac_widgets_selected'] такое Redux Framework вернул результаты, и у меня уже есть другие параметры Redux Framework, которыми уже манипулируют functions.php и они работают правильно

Для справки: в файле опций Redux Framework код, используемый для получения категорий:

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'
   ),

0 ответов

Другие вопросы по тегам