Поддержка Проблемы и решения Неправильно считает количество элементов массива

  • Помогите найти ошибку

    $sub=wp_list_categories( 'echo=0&hide_empty=0&title_li=&orderby=id&show_count=1&use_desc_for_title=0&child_of=1' );
    $n=count ($sub);
    echo $n;
    echo $sub;

    получается

    1
    Puteshestvie S Detmi (3)
    В Европу на машине-2 (3)
    aaa (1)

    т.е. массив содержит 3 элемента, но «насчитывается» только один.

    В чем проблема?

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • $sub не массив а строковая переменная

    вам уже ответил использовать get_categories()

    я не знаю как ее использовать, можете написать?

    да вроде получилось

    А не подскажите код для вывода самих элементов массива?
    пробую foreach но что то не получается

    foreach($sub as $value)
    {
    echo $value;
    }

    $value это объект, а не строка. Объект с такими свойствами

    // $value->name (Рубрика 1)
    		// $value->slug (rubrika-1)
    		// $value->term_group (0)
    		// $value->term_taxonomy_id (4)
    		// $value->taxonomy (valueegory)
    		// $value->description ()
    		// $value->parent (0)
    		// $value->count (14)
    		// $value->object_id (2743)
    		// $value->value_ID (4)
    		// $value->valueegory_count (14)
    		// $value->valueegory_description ()
    		// $value->value_name (Рубрика 1)
    		// $value->valueegory_nicename (rubrika-1)
    		// $value->valueegory_parent (0)

    так get_categories() вроде возвращает массив? а wp_list_categories строку?

    Можно как то обойтись только get_categories() и для подсчета и для вывода подрубрик?
    Или обязательно дано использовать обе?

    а как можно закэшировать их? понятно что изменения очень не частые, не чаще одного раза в сутки.

    это две разные функции. одна строит готовый список (выдает строку), вторая возвращает массив объектов категорий.
    А зачем кешировать?

    ок понятно, спасибо. Буду использовать обе.
    кэшировать что бы не грузить базу.
    Много подкатегорий и каждый раз при выводе страницы обращаться в базу (точнее наверное даже 2 раза за каждый раз — для подсчета и для вывода), а информация реально не изменяется неделями.

    Модератор Yui

    (@fierevere)

    永子

    кешировать через Transients API

    а как можно выводить покатегории не столбиком, а в строчку, через запятую?

    если речь про wp_list_categories()
    функция строит ul, li список и присваивает им стилевые классы. Вам остается только создать css для нужного оформления. Или другой вариант. сохранить сначала все в переменную, и заменить всякие ul и li на то, что вам надо

    а как можно вывести строковую переменную чтобы все символы увидеть?
    т.е. чтобы увидеть где в ней все эти li ul стоят?

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Тема «Неправильно считает количество элементов массива» закрыта для новых ответов.