HTML теги в описании категорий, меток

Все сегодня просто параноидально настраивают сайты и блоги под поисковые системы и называется все это - SEO — дело надо признаться полезное и продуктивное. Я и сам, чего греха таить, люблю лишний раз взять отвертку и подкрутить очередной сайт, не знаю насколько эффективно у меня это получается, но моральное удовлетворение от этого я получаю точно! 🙂

Итак, о чем это я? Ах да, спросили меня недавно, - "как сделать так чтобы WordPress не вырезал html теги в описании рубрик и меток". Он их от туда оказывается вырезает, я до этого и не задумывался на этот счет. Впрочем, правильно делает, что вырезает, потому что если там использовать теги и случайно не закрыть какой-нить блочный тег вроде <div>, то потом можно долго недоумевать что за бомба упала на блог и почему его так раскарёжило, ведь никто же не подумает, что всему виной какое-то безобидное описание рубрики, особенно, если это описание добавлялось не тем, кто потом пытается вернуть все на круги своя.

Немного покопавшись в сети я нашел ответ: теги вырезаются функциями wp_filter_kses() и wp_kses_data(), которые как и все в мире WordPress цепляются через фильтры и которые соответственно можно "отцепить". Делается это всего двумя строчками! Знание — сила! А вы думали?

remove_filter('pre_term_description', 'wp_filter_kses');
remove_filter('pre_term_description', 'wp_kses_data');

Вставляем эти две строчки в functions.php и радуемся, что никакие теги в описании рубрик и меток больше не вырезаются и у нас там полный карт-бланш на использование html А занчит можно воспользоваться такими тегами как h2 h3 и даже h4 🙂

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' );
}
wp_filter_kses

Этот код тоже нужно вставлять в functions.php

Кстати, без этих кодов, т.е. по умолчанию, в описаниях можно использовать некоторые теги, такие как: <a>, <strong>, <em>. Поэтому прежде чем использовать эти коды, убедитесь что без них вам не обойтись.

Теги: ,
Рубрика: Настройка WordPress | 30 сентября 2011

Предыдущие записи из рубрики `Настройка WordPress`

3 комментария

купить диван, 06.05.2014 в 15:47

Сегодня искал данный тип решения своего вопроса и тут такая находка! спасибо большое буду експерементировать

ОтветитьОтветить
Сергей, 30.11.2014 в 13:57

Спасибо! помогло 🙂

ОтветитьОтветить
KasQad, 06.02.2015 в 17:22

Спасибо, полезная статейка 🙂

ОтветитьОтветить

Комментировать