Все сегодня просто параноидально настраивают сайты и блоги под поисковые системы и называется все это - 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 🙂
А можно еще так, чтобы теги оставались и в описаниях ссылок и описании пользователей, но у пользователей оставлять теги чревато тем, что шаблон может поехать, если незадачливые пользователи начнут использовать эти теги, поэтому без надобности лучше ограничится кодом выше.
$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>. Поэтому прежде чем использовать эти коды, убедитесь что без них вам не обойтись.
Сегодня искал данный тип решения своего вопроса и тут такая находка! спасибо большое буду експерементировать
Спасибо! помогло 🙂
Спасибо, полезная статейка 🙂