Изменение атрибута title

Всем известен такой кусок кода:

Опубликовано в: <?php the_category(', ') ?>

Соответственно, в браузере, при наведении мышкой на название категории появляется всплывающая подсказка (title): <<Посмотреть все записи в рубрике Без рубрики>>.
Меня данный титл категорически не устраивает. Я, например, хочу чтобы отображалась надпись: <<Посмотреть все публикации в разделе "Без рубрики">>. Т. е. изменить title.
Как можно в вышеуказанный код добавить, что-то типа:

title="Посмотреть все публикации в разделе &laquo;%&raquo;"

Две недели уже ищу по форумам и в Codex’е искал. Не могу найти. Предлагают только править в файле локализации, но не хотелось бы. Потому что при обновлении движка, всё заново придётся править. Хотелось бы решить проблему на уровне темы.

Писать "В рубрике" или писать "В разделе", на мой взгляд, это не очень принципиально. Во всяком случае, эта проблема не так существенна, чтобы тратить на неё свои силы и время … или деньги.

Ибо решить её можно только тремя способами:

Или внести исправления в файл локализации движка, а потом мучиться при каждом обновлении движка (об этом вы правильно написали!).

Или самому прописать все, что хочется, в файле functions.php, находящемся в папке с шаблоном.

Или привлечь спеца, заплатив ему денюжку, который или напишет вам специальный плагин или внесет за вас исправления в тот же файл functions.php.

О том, что хак – это зло и что в локализацию движка по этому поводу лучше не влезать – хорошо написано здесь – http://mywordpress.ru/support/viewtopic.php?id=3104

Т. е., если я правильно понял, способа ТОЛЬКО два. Либо файл локализации, либо function.php.
Может всё-таки кто-то знает, как это сделать по другому. Просто, в PHP я слаб и не могу додуматься.
Может можно это как-нибудь указать здесь:

<?php the_category(', ') ?>

Можно добавить фрагмент в functions.php активной темы (файл нужно сохранить в UTF-8 без BOM):

function replace_the_category_title($thelist) {
    return str_replace('все записи в рубрике', 'все публикации в разделе', $thelist);
}
add_filter('the_category', 'replace_the_category_title');

Спасибо большое! Помогло!
Я так понял, таким же образом можно сделать и для других тэгов WP?

В большинстве случаев можно найти и использовать подходящий фильтр в конкретной функции. В остальных — использовать фильтр gettext, позволяющий переопределить любую строку перевода.

Понял. А есть какой-нибудь готовый "каркас" кода этого фильтра, чтобы можно было при необходимости подставлять туда нужные значения?

Пример той же самой замены с помощью gettext может выглядеть так:

function replace_default_strings($text) {
    $search = array(
        'все записи в рубрике',
        'вторая строка для поиска',
        'третья строка для поиска',
    );
    $replace = array(
        'все публикации в разделе',
        'вторая строка для замены',
        'третья строка для замены',
    );
    return str_replace($search, $replace, $text);
}
add_filter('gettext', 'replace_default_strings');

Спасибо большое!
Вот это, мне кажется, более функциональным, с меньшим количеством кода.

Anonymous
Отправить
Ответ на: