n-wp.ru — блог о WordPress

Как изменить title у тегов

Есть у меня список тегов на сайте, при наведении мышкой на тег всплывает что-то типа «5 тем».

Хочу поменять эту надпись на «5 фильмов режиссёра [тут имя тега, оно же — имя режиссёра]».

Как дописать фильмов режиссёра в файле перевода я знаю, а как вот сделать чтобы ещё и имя тега туда пихнуть? В файле перевода используются только какие-то %s, %d, %1 — примерно понимаю что они значат, но не знаю, как тег туда впихнуть.

Может плагин для изменения этого есть? Если нету, то влезу в код и куда угодно. Просто не знаю в какую сторону копать и как бы нагуглить инфу по вопросу.

Если что, сайт вот — http://arthouseclub.ru/. Сбоку справа — список режиссёров, вот там хотел бы изменить это.

8 комментариев

    • облако вывожу через php, по-моему это стандартное wp-облако

      • Мне какжется, что стандартный вывод облака тегов не умеет настраивать title каждого тега. Ну разве что только если не отредактировать перевод русского WordPress или применить какой-нибудь хитрый хак.
        За то мне кажется, что вашу проблему решит плагин Simple Tags, который умеет отображать собственное облако тегов. В плагине можно настроить внешний вид тегов, в том числе и title.
        [img]http://dl.dropbox.com/u/2027201/Images/tiaurus-2010-10-11_112042.png[/img]

        • да, думаю подойдёт, если настраиваемо так. только можно вывод для этого плагина сделать как-то, чтобы вставать в код, вместо обычного? потому что в стандартном виджете оформление у меня тогда будет отличаться от того, что сейчас в Списке режиссёров.

  • В стандартном облаке меток заголовки можно изменить с помощью фильтра. Достаточно добавить фрагмент в functions.php активной темы:

    function new_tag_title($count, $type, $style, $name) {
    $type = str_replace( array( ‘тема’, ‘темы’, ‘тем’ ), array( ‘фильм’, ‘фильма’, ‘фильмов’ ), $type );
    $type = str_replace( array( ‘запись’, ‘записи’, ‘записей’ ), array( ‘фильм’, ‘фильма’, ‘фильмов’ ), $type );
    return "title=’$count $type режиссёра $name’ $style>$name<";
    }

    function replace_titles_in_tag_cloud($cloud) {
    $callback = create_function(‘$matches’, ‘return new_tag_title($matches[1], $matches[2], $matches[3], $matches[4]);’);
    return preg_replace_callback("/title='(.*?) (.*?)’ (.*?)>(.*?)</i", $callback, $cloud);
    }
    add_filter(‘wp_tag_cloud’, ‘replace_titles_in_tag_cloud’);