Поддержка Проблемы и решения Как добавить в функцию in_category из настроек темы ID

  • Решено lizverd

    (@lizverd)


    Всем привет.
    Проблема такая, в настройках темы создал input поле, в которое вписываю ID категорий. Эти ID нужно вставить в функцию и в in_category

    function group() {
    	$group_ids = get_option( 'group_ids' );
    
    	if (in_category(array( $group_ids ))) {
    		//
    	}
    }

    ID выводятся из темы таким образом:

    $group_ids= get_option('group_ids');
    _e($group_ids);

    var_dump показывает так string(7) «1,2,3,4»
    Но при вставке in_category(array( $group_ids )) ID почему то не выводятся.
    Подскажите, как правильно сделать

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • вы говорите функции, что это массив, а сами подсовываете ей строку.

    
    $group_ids = get_option('group_ids');
    $group_ids = explode(",", $group_ids);
    

    Flector, спасибо.
    Но не почему то даже так не хочет выводить.

    function group() {
    	$group_ids = get_option('group_ids');
    	$group_ids = explode(",", $group_ids);
    	if (in_category(array( $group_ids ))) {}
    }

    В запросах видно, что появляется еще 1 запрос от get_option(‘group_ids’);.
    Немного не понял, зачем использовать explode, ведь в input поле я id категорий вручную ввожу таким образом: 1,2,3,4
    точно также, если в эту же функцию вставить эти id:

    function group() {
    	if (in_category(array(1,2,3,4))) {}
    }

    то функция будет рабочая.

    Получилось работать эту функцию таким образом:

    function group() {
    $group_ids = print_r(get_option('group_ids'),false);
    	if (in_category(array($group_ids))) {}
    }

    но меня сильно смущает print_r

    Модератор Yuri

    (@yube)

    Немного не понял, зачем использовать explode, ведь в input поле я id категорий вручную ввожу таким образом: 1,2,3,4

    То, что Вы вводите — строка. explode делает из нее массив из 4-х элементов.

    если в эту же функцию вставить эти id:
    array(1,2,3,4)

    php на этапе компиляции создаст массив из 4-х элементов

    В то же время array('1,2,3,4') создаст массив с одним элементом — строкой ‘1,2,3,4’

    но меня сильно смущает print_r

    Правильно смущает. Это гвоздь не от той стенки.

    Короче, Вам надо подтянуть матчасть, раз уж взялись кодить.

    
    $group_ids = get_option('group_ids');
    $group_ids = explode(",", $group_ids);
    if (in_category( $group_ids )) {}
    

    Flector, спасибо еще раз.
    Я уже понял из слов Юрия что было лишним)))
    Еще раз спасибо всем)))

    Короче, Вам надо подтянуть матчасть, раз уж взялись кодить.

    да пытаюсь учить, но пока сам, меня пока, как Вы, носом не ткнут, куда нужно копать, не пойму)))

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Как добавить в функцию in_category из настроек темы ID» закрыта для новых ответов.