Убираем ненужный текст из атрибута title для ссылок категорий
В системе wordpress есть некоторые моменты, предназначение которых остается загадкой для многих пользователей системы. Одной из таких непонятных особенностей есть часть кода, что генерируется в результате использования функции wp_list_categories для категории wordpress. Если вы внимательно посмотрели бы на HTML код, например, блога WordPress Inside, то там при выводе списка категорий отображалось бы что-то вроде:
<ul> <li class="cat-item cat-item-10"> <a href="http://wordpressinside.ru/category/security/" title="Просмотреть все записи в рубрике «Безопасность»">Безопасность</a> (2) </li> <li class="cat-item cat-item-85"> <a href="http://wordpressinside.ru/category/video/" title="Просмотреть все записи в рубрике «Видео»">Видео</a> (3) </li> <li class="cat-item cat-item-12"> <a href="http://wordpressinside.ru/category/functions/" title="Просмотреть все записи в рубрике «Возможности»">Возможности</a> (26) </li>
Для заголовка каждой категории выводится фраза «Просмотреть все записи в рубрике». Для русской версии это еще более-менее нормально смотрится, но иногда в блогах можно встретить фразу «View all posts filed under», что, конечно, выглядит не очень хорошо. Кроме того, могут возникнуть ситуации, как, например, у одного англоязычного блоггера, когда заказчик попросил его убрать этот текст из атрибута title для ссылки.
Для такого случая нашел статью с интересным хаком, который позволяет легко справится с поставленной задачей. Алгоритм действий достаточно прост. Учитывая тот факт, что функция вывода категорий, как и многие другие в wordpress, имеет параметр, отвечающий за отображения результата ее выполнения – ставим для него значение = 0. В таком случае мы сможем предварительно обработать результата, заменив или удалив ненужную фразу, а потом уже отобразить ее на сайте.
В общем случае получает такой вот код:
<?php $categoriesVar = wp_list_categories("echo=0"); $categoriesVar = str_replace( "View all posts filed under " , ' ' , $categoriesVar ); echo $categoriesVar; ?>
Его нужно добавить в то место шаблона wordpress блога, где выводится перечень категорий через wp_list_categories. Данный пример убирает из title ненужную фразу, оставляя лишь название категории.
Можно вообще удалить атрибут title из генерируемой ссылки категории:
<?php $categoriesVar = wp_list_categories("echo=0"); $categoriesVar = preg_replace( '/title=\"(.*?)\"/' , ' ' , $categoriesVar ); echo $categoriesVar; ?>
Напоследок нужно заметить 2 вещи. Во-первых, если вы используете функцию для вывода категорий через wp_list_categories с большим числом параметров, то при замене кода их нужно оставлять, добавляя лишь параметр echo=0, например:
$categoriesVar = wp_list_categories("hide_empty=1&child_of=4&depth=1&title_li=&orderby=name&order=asc&use_desc_for_title=0&echo=0");
Во-вторых, для русских блогов, нужно изменять текст генерируемый функцией категорий. Причем название категории в русском варианте окружено дополнительно скобками « и », которые тоже придется убрать.
$categoriesVar = str_replace("Просмотреть все записи в рубрике «" , '' , $categoriesVar ); $categoriesVar = str_replace("»" , '' , $categoriesVar );
В общем, нужно убирать лишний текст, который выводится именно в вашем блоге, посмотрите HTML код и уже исходя из этого используйте соответствующее решение. Так, например, для WordPress Inside у меня получится следующий код:
<?php $categoriesVar = wp_list_categories("hide_empty=1&exclude=1&title_li=&orderby=count&order=desc&use_desc_for_title=0&echo=0"); $categoriesVar = str_replace("Просмотреть все записи в рубрике «" , '' , $categoriesVar ); $categoriesVar = str_replace("»" , '' , $categoriesVar ); echo $categoriesVar; ?>
Можно, конечно, подправить код самой функции wp_list_categories в исходниках, но это неправильное решение. Вообще идеально, наверное, было бы переопределить функцию вывода категорий wp_list_categories в файле функций functions.php дабы не вносить правки в шаблон каждый раз при его смене, но, увы, не знаю как это сделать:( Если вы в курсе, поделитесь решением в комментариях.
P.S. Постовой. Компания Hosted предлагает качественный платный хостинг по доступным ценам, хорошая и стабильная работа гарантирована.
Качественное и естественное размножение и генерация статей для сайтов, сателлитов и продвижения.
Туристический оператор Элит Турс позволяет заказать авиабилеты по Украине и на международные рейсы.
Комментариев - 16 к статье “Убираем ненужный текст из атрибута title для ссылок категорий”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог
- Оптимизируем WordPress header и удаляем лишние элементы
- 17 полезных приемов и хаков для WordPress
- Изображения (миниатюры) для связных постов в Simple Tags
- Использование скрипта Lightbox 2 в WordPress блоге без плагина
- Как добавить дополнительные кнопки в редактор WordPress
- Похожие статьи в wordpress без плагинов с использованием категорий блога
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- Рост доходов корпорации Google
- Наказаны за слухи
- Samsung Galaxy S III не получит беспроводную зарядку до сентября
- В июне Apple представит новые ноутбуки MacBook Pro
- Amazon займется созданием собственных онлайн-телешоу
- Новые банки в системе «Яндекс.Деньги»
- Chrome OS станет похожей на традиционные операционные системы

Оцените статью: 
Категории:
Теги:
А у меня с блогом другая проблема, на главной странице титлы на постовые отображаются вот так:
Permanent to Link «название поста» (когда мышкой наводишь)
Сам это проблему устранить не мог в своё время, сейчас попробую воспользоваться вашим советом
спасибо за информацию
Что-то вообще не понял я где это искать. Какой файл изменить нужно? У меня нет на сайте ни одной такой фразы, про которую вы тут пишите.
Damian, если нет подобных фраз, то искать ничего не нужно.
А есть какие-то ещё варианты как можно убрать «Просмотреть все записи в рубрике…»? Насколько я знаю, поисковики, особенно Google, очень любят эти тайтлы в ссылках. И хотелось бы сделать их разными, то есть без повторяющейся «Просмотреть все записи в рубрике…»
Damian, о том как убрать эти надписи я и написал в статье, читаем внимательно. Разными их делать в принципе никакого смысла нет.
Можно отредактировать файл classes.php (/wp-includes).
Строка:
$link .= ‘title=»‘ . sprintf(__( ‘View all posts filed under %s’ ), $cat_name) . ‘»‘;
Отредактировал 2 строчки файла classes.php (/wp-includes)и получилось как и задумывалось.
if ( $use_desc_for_title == 1 || empty($category->description) )
$link .= ‘title=»‘ . sprintf(__( ‘%s’ ), $cat_name) . ‘»‘;
спасибо, все получилось!:)
Здравствуйте! В функции wp_list_pages есть возможность перед выводом непосредственной названия страницы вставлять необходимый html код с помощью link_before:
<?php
wp_list_pages('link_before=&title_li=&include=18&link_after=’);
?>
Возможно ли тоже сделать для функции wp_list_categories ? И как?
Уже разобрался ! Надо написать так:
‘ , ‘»»>’ , $categoriesVar );
$categoriesVar = str_replace(«» , ‘‘ , $categoriesVar );
echo $categoriesVar;
?>
Спасибо большое! Статья помогла!
спасибо за материал!
Мне для блога нужно было полностью убрать атрибут title из ссылки
решение с переопределением функции wp_list_categories по ссылке ниже.
http://stackoverflow.com/questions/2405437/removing-title-from-wp-list-categories
function wp_list_categories_remove_title_attributes($output) {
$output = preg_replace(‘` title=»(.+)»`’, », $output);
return $output;
}
add_filter(‘wp_list_categories’, ‘wp_list_categories_remove_title_attributes’);
А как убрать всплывающий заголовок над названием рубрики в сайдбаре? На Вашем сайте над рубрикой отображается только название, а на странице самой рубрики уже идет вступительный текст. Как сделать, чтобы этот текст не отображался весь?
Андрей, посмотрите статью как добавить текст описания в категории wordpress блога, возможно там найдете ответ на свой вопрос. Дабы описание не выводилось в функции wp_list_categories есть какой-то параметр, уже точно не вспомню, смотрите кодекс вордпресс.
Помогите, пожалуйста с одной вещью. У меня на сайте есть навигационное меню, в котором отображаются категории. Однако в ссылках у них значение title не как в этой статье, а тупо записывается описание самой категории. Поскольку для категорий я буду выводить их описания на их же страницах, то и текст получается очень большой и выглядит это дела при наводе мышки на ссылку категории очень ужасно.
Мне нужно, чтобы при генерации ссылки категории в title записывалось хотябы название категории что-ли или как-нибудь обрезался текст описания на определенное кол-во символов. Я пытался разобраться в коде, но ни чего не получается, потому что wp_list_catrgories там даже нету.
Вот какой код вывода категорий у меня:
‘secondary-menu’, ‘container’ => », ‘fallback_cb’ => », ‘menu_class’ => $menuClass, ‘echo’ => false ) );
};
if ($secondaryNav == ») { ?>
<ul class="»>
<li ><a href="»>
Помогите, пожалуйста. Что, где нужно прописатать/исправить/удалить? Очень буду благодарен за помощь.
Блин, весь код обрезался…
Андрей, я так понимаю меню у вас выводится через функцию wp_nav_menu – вариант посмотреть ее параметры и поискать там нужное решение. Можете выслать код на почту stod84@gmail.com – посмотрю что там можно сделать раз он здесь не отобразился.