Как реализовать html описание рубрик?

Задался вопросом как использовать html описание рубрик(категорий). Использую тему Nirvana.  Пытался решить проблему установкой плагинов Allow HTML in Category Descriptions и Rich Text Tags, но ни один плагин с данной темой не заработал. После решил покопаться в коде темы. На просторах интернета написано что нужно убрать фильтрацию HTML тегов в описаниях рубрик.

Добавление кода

$filters = array('pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description');
foreach ( $filters as $filter ) {
remove_filter($filter, 'wp_filter_kses');
}
foreach ( array( 'term_description' ) as $filter ) {
remove_filter( $filter, 'wp_kses_data' );
}

или

remove_filter(<span class="hljs-string">'pre_term_description'</span>, <span class="hljs-string">'wp_filter_kses'</span>);
remove_filter(<span class="hljs-string">'pre_term_description'</span>, <span class="hljs-string">'wp_kses_data'</span>);

в functions.php ничего не дало.

Есть подозрение что вставляю код не в то место. В самом functions.php есть ссылки или не знаю как это верно назвать на другие файлы темы. Пытался вставить код в эти файлы, но к успеху это так же не привело.

//Loading include files
require_once(get_template_directory() . "/includes/theme-setup.php"); // Setup and init theme
require_once(get_template_directory() . "/includes/theme-styles.php"); // Register and enqeue css styles and scripts
require_once(get_template_directory() . "/includes/theme-loop.php"); // Loop functions
require_once(get_template_directory() . "/includes/theme-meta.php"); // Meta functions
require_once(get_template_directory() . "/includes/theme-comments.php"); // Comment functions
require_once(get_template_directory() . "/includes/theme-functions.php"); // Misc functions
require_once(get_template_directory() . "/includes/theme-hooks.php"); // Hooks
require_once(get_template_directory() . "/includes/widgets.php"); // Hooks
require_once(get_template_directory() . "/includes/ajax.php"); // Hooks

morfiyc
Оцените автора
Добавить комментарий

  1. tiaurus

    Попробуйте добавить в functions.php:

    remove_filter( 'pre_term_description', 'wp_filter_kses' );
    remove_filter( 'pre_link_description', 'wp_filter_kses' );
    remove_filter( 'pre_link_notes', 'wp_filter_kses' );
    remove_filter( 'term_description', 'wp_kses_data' );
    

    Чтобы вывести html-описание категории, используйте

    Ответить
    1. morfiyc автор

      Нет к сожалению по прежнему не работает.
      Вот что вышло.
      Вот так смотрится в админке (как и должно быть)
      https://dl.dropboxusercontent.com/u/18354619/ShareX/2015/04/2015-04-30_18-16-40.png
      А вот так на самом сайте
      https://dl.dropboxusercontent.com/u/18354619/ShareX/2015/04/2015-04-30_18-18-06.png
      Теги h1,h2,h3,h4 не работают. Что-то отформатировано, но вроде он так и по умолчанию умеет.

      Ответить
      1. tiaurus

        А вы смотрели в исходном коде страницы, присутствует ли html-разметка? Мне кажется, что присутствует, просто в style.css стили не прописаны.

        Ответить
  2. morfiyc автор

    Да в коде странички h1,h2,h3,h4 итд как прописывал есть. Но по факту как видно на скрине не отображается. А что теперь нужно в css добавить? Вот если надо ссылка на css https://dl.dropboxusercontent.com/u/18354619/style.css

    Ответить
    1. tiaurus

      Если в исходном коде страницы у описания категории есть html-разметка, то значит код, который вы применили, действует. Вам нужно добавить оформление стилей. Для этого нужно знать, какие классы у H1, H2, или какой класс у блока, в котором находятся эти элементы. Это можно узнать в исходном коде страницы.

      Например, h1 находится в блоке с классом category-description:

      Проверка

      Сделаем h1 жирным и большим. Для этого добавим в style.css:

      .category-description h1 {font-weight:600; font-size:400%;}
      
      Ответить
      1. morfiyc автор

        Вот теперь кажись всё понимаю. Тоисть теперь получается без прописывания стилей в css ничего отображаться не будет ка как мне нужно? В моём случае не .category-description , а .category-archive-meta . Исходя из этого всплывает другой вопрос. Так как везде на страницах будет прописано .category-archive-meta как задавать разные css свойства. Тоисть к примеру чтобы в одной категории h1 {font-weight:600; font-size:400%;} , а в другой h1 {font-weight:300; font-size:200%;}

        Ответить
        1. tiaurus

          У вас блок с описанием имеет класс category-archive-meta независимо от категорий? Или для каждой категории все же добавляется свой класс? Если класс одинаков для всех категорий, то нужно как-то придумать добавить класс. Где у вас выводится описание категории? На какой странице?

          Ответить
          1. morfiyc автор

            Класс на странице категорий одинаковый. Вроде это логично или я не прав). Описание категории выводится на странице категории к примеру http://сайт.ru/category/имя категории/. Если бы для каждой категории можно было бы прописать свой класс вопрос бы отпал) , но я понятия не имею как так сделать.

            Архивы рубрики: Uncategorized

            Проверка

            Ответить
            1. morfiyc автор

              В предыдущий пост неверно вставил код(

              <h1 class="page-title"><div class="page-title-text">Архивы рубрики: <span>Uncategorized</span></div></h1>
              
              					<div class="category-archive-meta"><h3>проверка</h3>
              Ответить
              1. tiaurus

                Посмотрите, к элементу body у вас добавляется класс, соответствующий текущей категории, на странице, где выводится описание?

                Ответить
                1. morfiyc автор

                  Если вы про этот кусок то он в каждой категории одинаковый

                  <body class="archive category category-5 logged-in admin-bar no-customize-support nirvana-image-none caption-simple">
                  Ответить
                  1. tiaurus

                    Предполагаю, что не одинаковый. Обратите внимание на category-5. Это класс, добавленный для категории с ID=5. Для другой категории будет другой класс category-XX. Проверьте это.

                    Если есть класс, зависящий от категории, то значит можно создать и соответствующее оформление для описания каждой категории:

                    body.category-5 div.category-archive-meta h1{font-weight:600; font-size:400%;}
                    body.category-3 div.category-archive-meta h1{font-weight:300; font-size:200%;}
                    
                    Ответить
                    1. morfiyc автор

                      Покопаю еще. Возможно я не досмотрел. В любом случае большое вам спасибо. Вы мне очень помогли).

                    2. morfiyc автор

                      Вы были правы. Цифровое значение в каждой категории разное.

                    3. tiaurus

                      Можно так же отредактировать файл, отвечающий за вывод категории, добавив к блоку с описанием класс, указывающий на категорию. Например, добавим класс, соответствующий названию категории:

                      cat_ID;
                      $cat_name = $cat->name;
                      $cat_slug = $cat->slug;
                      ?>
                      
                      

                      Проверка

                      В любом случае получим одинаковый результат — для описания каждой категории можно задать индивидуальное оформление.