Как реализовать 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('pre_term_description', 'wp_filter_kses');
remove_filter('pre_term_description', 'wp_kses_data');

в 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

15 Комментарии

  1. Попробуйте добавить в 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-описание категории, используйте

    < ?php echo wpautop( term_description() ); ?>
    • Если в исходном коде страницы у описания категории есть html-разметка, то значит код, который вы применили, действует. Вам нужно добавить оформление стилей. Для этого нужно знать, какие классы у H1, H2, или какой класс у блока, в котором находятся эти элементы. Это можно узнать в исходном коде страницы.

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

      Проверка

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

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

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

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

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

            Проверка

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

                  • Предполагаю, что не одинаковый. Обратите внимание на 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%;}
                    
                    • Покопаю еще. Возможно я не досмотрел. В любом случае большое вам спасибо. Вы мне очень помогли).

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

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

                      < ?php
                      $cat = get_category( get_query_var( 'cat' ) );
                      $cat_id = $cat->cat_ID;
                      $cat_name = $cat->name;
                      $cat_slug = $cat->slug;
                      ?>
                      
                      

                      Проверка

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

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*