Поддержка Проблемы и решения список подкатегорий

  • Добрый день. Прошу помощи в решении одной задачи.
    Есть функция wp_list_cats(); которая выводит список всех категорий, включая под категории. Если в качестве параметра указать wp_list_cats(‘optioncount=1’); то категории будут выводится с количеством постов для каждой отдельной категории.
    Задача сводится к тому, чтобы вывести список дочерних подкатегорий для отдельной категории (всё та же функция с параметром wp_list_cats(‘child_of=ID_КАТЕГОРИИ’);) с количеством постов для каждой. Собственно вывести количество постов и не получается.
    Заранее благодарю за помощь.

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • вот так не получается? wp_list_cats(‘child_of=ID_КАТЕГОРИИ&optioncount=1’);

    Проблема осложняется тем, что категории нужно вывести не в сайдбаре (или где-то ещё), а заметке. То есть исполняемый код пишу в заметке (где написано как это реализуется могу дать ссылку).
    Вот такая запись wp_list_cats(‘child_of=ID_КАТЕГОРИИ&optioncount=1’); работает в сайдбаре, а в заметке выводится только список подкатегорий (без количества постов).

    какая заметка? и ссылку тоже давайте

    Вот здесь эта статья. Это можно и через плагины inline-PHP или Exex-PHP сделать, но результат такой же — список подкатегорий есть, а количества записей нет.

    а зачем вам в запись вставлять этот код, в шаблон ставте

    Категорий очень много, сайдбар пухнет. В шаблон вывел основные категории, хотел сделать ссылки на дочерние категории, а их на отдельной странице.

    ну не в сайтбар, выводите после записи сразу в контенте

    Не, не мой вариант.
    В общем-то проблема лишь в том, что функция wp_list_cats() в заметке принимает только первый параметр. Параметр после знака & почему-то игнорируется.

    Модератор Yuri

    (@yube)

    Код вставляете в визуальном режиме или в html?

    И в визуальном и в html — результат один.

    Я думаю копать надо именно в функции, которая позволяет исполняемый код в заметку вставлять.
    В functions.php я добавлял следующее:`function exec_php($matches){
    eval(‘ob_start();’.$matches[1].’$inline_execute_output = ob_get_contents();ob_end_clean();’);
    return $inline_execute_output;
    }
    function inline_php($content){
    $content = preg_replace_callback(‘/\[exec\]((.|\n)*?)\[\/exec\]/’, ‘exec_php’, $content);
    $content = preg_replace(‘/\[exec off\]((.|\n)*?)\[\/exec\]/’, ‘$1’, $content);
    return $content;
    }
    add_filter(‘the_content’, ‘inline_php’, 0); `
    Где-то есть условие которое второй параметр не пропускает.

    Модератор Yuri

    (@yube)

    Подозреваю, что & превращается в &аmp;. Посмотрите, что попадает в колбэк функцию.

    Предложу такой вариант для выполнения php в постах и страницах:
    добавить в functions.php активной Темы

    add_filter('the_content','execute_php',100);
    function execute_php($html){
         if(strpos($html,"<"."?php")!==false){
              ob_start();
              eval("?".">".$html);
              $html=ob_get_contents();
              ob_end_clean();
         }
         return $html;
    }

    В HTML вставляете <?php ваш код ?> он выполняется..

    Юрий, подскажите подскажите, пожалуйста, как можно посмотреть?

    Модератор Yuri

    (@yube)

    function exec_php($matches){
    
    print "\n========\n$matches[1]\n==========\n"; // эта строка выведет 
    
    eval('ob_start();'.$matches[1].'$inline_execute_output = ob_get_contents();ob_end_clean();');
    return $inline_execute_output;
    }

    Выведет где попало и как попало, но посмотреть будет можно. Смотреть лучше в коде страницы.

    wp_list_cats() устаревшая функция, почему не wp_list_categories() ?
    Вот плагинчик есть, если что, для вывода разных WP функций через шорткоды.
    http://wordpress.org/extend/plugins/template-tag-shortcodes/faq/

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