Июл
16
13

Убираем ненужный текст из атрибута 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 предлагает качественный платный хостинг по доступным ценам, хорошая и стабильная работа гарантирована.
Качественное и естественное размножение и генерация статей для сайтов, сателлитов и продвижения.
Туристический оператор Элит Турс позволяет заказать авиабилеты по Украине и на международные рейсы.

А еще можно опубликовать статью в своем блоге:
Опубликовать в twitter.com        
рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 1, средний балл: 7,00 из 7)
Loading ... Loading ...

категория Категории: Хаки и секреты;
теги Теги: , , , , .
Еще интересно почитать:
Заработай на своих сайтах!
Блогун - реклама в блогах

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

  • Роман   18.07.2010

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

  • Damian   01.10.2010

    Что-то вообще не понял я где это искать. Какой файл изменить нужно? У меня нет на сайте ни одной такой фразы, про которую вы тут пишите.

  • Tod   04.10.2010

    Damian, если нет подобных фраз, то искать ничего не нужно.

  • Damian   04.10.2010

    А есть какие-то ещё варианты как можно убрать «Просмотреть все записи в рубрике…»? Насколько я знаю, поисковики, особенно Google, очень любят эти тайтлы в ссылках. И хотелось бы сделать их разными, то есть без повторяющейся «Просмотреть все записи в рубрике…»

  • Tod   05.10.2010

    Damian, о том как убрать эти надписи я и написал в статье, читаем внимательно. Разными их делать в принципе никакого смысла нет.

  • Korvin204   21.11.2010

    Можно отредактировать файл classes.php (/wp-includes).
    Строка:
    $link .= ‘title=»‘ . sprintf(__( ‘View all posts filed under %s’ ), $cat_name) . ‘»‘;

  • Киноман   04.01.2011

    Отредактировал 2 строчки файла classes.php (/wp-includes)и получилось как и задумывалось.
    if ( $use_desc_for_title == 1 || empty($category->description) )
    $link .= ‘title=»‘ . sprintf(__( ‘%s’ ), $cat_name) . ‘»‘;

  • alina   27.04.2011

    спасибо, все получилось!:)

  • Vov_chik   13.05.2011

    Здравствуйте! В функции wp_list_pages есть возможность перед выводом непосредственной названия страницы вставлять необходимый html код с помощью link_before:
    <?php
    wp_list_pages('link_before=&title_li=&include=18&link_after=’);
    ?>
    Возможно ли тоже сделать для функции wp_list_categories ? И как?

  • Vov_chik   13.05.2011

    Уже разобрался ! Надо написать так:
    ‘ , ‘»»>’ , $categoriesVar );
    $categoriesVar = str_replace(«» , ‘‘ , $categoriesVar );
    echo $categoriesVar;
    ?>
    Спасибо большое! Статья помогла!

  • Mnemonic_13   21.12.2011

    спасибо за материал!
    Мне для блога нужно было полностью убрать атрибут 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’);

  • Андрей   09.01.2012

    А как убрать всплывающий заголовок над названием рубрики в сайдбаре? На Вашем сайте над рубрикой отображается только название, а на странице самой рубрики уже идет вступительный текст. Как сделать, чтобы этот текст не отображался весь?

  • Tod   11.01.2012

    Андрей, посмотрите статью как добавить текст описания в категории wordpress блога, возможно там найдете ответ на свой вопрос. Дабы описание не выводилось в функции wp_list_categories есть какой-то параметр, уже точно не вспомню, смотрите кодекс вордпресс.

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


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

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

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

Где вы берете Wordpress шаблоны?

Посмотреть результаты

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