Июл
16

Убираем ненужный текст из атрибута title для ссылок категорий

категории wordpressВ системе 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("Просмотреть все записи в рубрике &laquo;" , '' , $categoriesVar );
$categoriesVar = str_replace("&raquo;" , '' , $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("Просмотреть все записи в рубрике &laquo;" , '' , $categoriesVar );
$categoriesVar = str_replace("&raquo;" , '' , $categoriesVar );
echo $categoriesVar;
?>

Можно, конечно, подправить код самой функции wp_list_categories в исходниках, но это неправильное решение. Вообще идеально, наверное, было бы переопределить функцию вывода категорий wp_list_categories в файле функций functions.php дабы не вносить правки в шаблон каждый раз при его смене, но, увы, не знаю как это сделать:( Если вы в курсе, поделитесь решением в комментариях.

P.S. Постовой. Компания Hosted предлагает качественный платный хостинг по доступным ценам, хорошая и стабильная работа гарантирована.
Качественное и естественное размножение и генерация статей для сайтов, сателлитов и продвижения.
Туристический оператор Элит Турс позволяет заказать авиабилеты по Украине и на международные рейсы.

Еще интересно почитать:
Заработай на своих сайтах!

1 комментарий к статье “Убираем ненужный текст из атрибута title для ссылок категорий”

  • Роман   18.07.2010

    А у меня с блогом другая проблема, на главной странице титлы на постовые отображаются вот так:
    Permanent to Link «название поста» (когда мышкой наводишь)
    Сам это проблему устранить не мог в своё время, сейчас попробую воспользоваться вашим советом
    спасибо за информацию

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


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Extabit - файлообменник для заработка
Последние посты
Полезное
Облако тегов
Клуб читателей блога
Скажи свое мнение!

Какой версиев Wordpress пользуетесь?

View Results

Loading ... Loading ...
Друзья проекта
Последние новости