Я занимаюсь разработкой 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'
),
Задача ещё не решена.
Других решений пока нет …