Изменяем вид ссылок в комментариях (WordPress).

Рубрики: на WordPress  

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

Недавно я сказал, что мой блог теперь dofollow. Но мои читатели разубедили меня в необходимости создания подобного блога и обретения гемороя на свою голову. Кстати, как только блог стал dofollow, количество комментариев возросло примерно аж в 10 раз и я вижу в этом некоторые корыстные цели :) Если честно, хотелось бы получать отзывы о своих статьях не за прямую ссылку, а за статьи. Поэтому я решил уже разобраться и определиться с этим вопросом окончательно и не вводить уже моих бедных читателей в заблуждение.

Итак, решение я увидел такое: т.к. мне было бы неприятно, если бы ссылки на сайты авторов комментариев не показывались бы вовсе, я решил отображать адреса сайтов комментаторов просто рядом с ником и нигде не ставить ссылку. Вообще никакую. Нет проблемы – не нужно ее решать.

Но, когда я залез в файл шаблона, содержащий комментарии (comments.php), то с удивлением обнаружил там строку get_comment_author_link(), которая и выводит ссылку. Сразу выводит ссылку.

Поэтому совет от webmoneylog (08.06.2008 в 8:52) в моей статье о том, как сделать dofollow блог никуда не годится.

Порывшись немного в документации по WP (куда я бы сослал вообще всех, т.к. там можно найти ответы на 99.9% вопросов о WP), я нашел пару функций, которые не сразу выводят ссылку в браузер и, таким образом, появляется возможность сохранить ее в переменную и выреать все теги.

Сразу оговорюсь: я не искали функцию, отдающую имя автора, мне было лень. Сделал проще – взял уже найденную функцию, отдающую ссылку с именем автора в анкоре и вырезал собственно тег <a> из нее.

Получается следующая картина.

Было:
<?php comment_author_link(); ?>

Стало:

<?php echo strip_tags(get_comment_author_link());

$url = strip_tags(get_comment_author_url_link());
if (!empty ($url)){
echo «(«.$url.»)»;
}

echo «пишет:»; ?>

Думаю, все всем и так понятно. Но поясню: сначала с помощью функции get_comment_author_link мы получаем ссылку на сайт комментатора в виде <a href=»site»>nick</a> и с помощью strip_tags вырезаем из нее тег <a></a>. То есть остается только имя автора без ссылки.

Потом мы с помощью функции get_comment_author_url_link получаем отдельно ссылку на сайт автора и опять же вырезаем из нее теги.

Там еще маленькая проверка – если сайт не указан, то ничего не выводить (если не проверять, то при не указанном сайте будут выводиться пустые скобки).

Таким образом я заменил ссылки в комментариях на ник и адрес сайта в скобках рядом. Думаю, никто не обидется. Захотят перейти на Ваш сайта – ссылка есть.

P.S. Для любителей рефакторинга и оптимизации: тут на два вызова stript_tags больше. Их могло бы и не быть, если бы я хорошо порылся в документации. Но я не считаю, что проигрышь в пару сотых секунды спасет отца русской демократии ;) Так что не начинайте нудить, пожалуйста ;)



Отзывов (6) на «Изменяем вид ссылок в комментариях (WordPress).»

    webmoneylog пишет:

    $return = "<a href=’$url’ rel=’external nofollow’>$author</a>";
    Даже самому простому :) программисту должно быть ясно, что такое изменение:
    $return = «$author, $url»;
    даст требуемый результат.
    А обозначенная вами «строка, которая и выводит ссылку», вызывает функцию get_comment_author_link (файл comment-template.php). Эту функцию я и предложил поправить.
    webmoneylog – а в тексте ссылки остаются :)


    admin пишет:

    Даже самому простому программисту :) должно быть понятно, что править сам движок – некрасивое занятие. Здесь можно обойтись правкой представления и не надо лезть в само ядро ;)


    Валерий пишет:

    Я только собираюсь всё это проделать, спасибо за инфу))) :!:


    Валерий пишет:

    Единственное ПЛОХО, что нельзя править собственные-же комментарии :sad:


    admin пишет:

    Да, плохо, что редактировать нельзя. Но писать такой модуль мне очень лень :)


    Ольга пишет:

    К движкам лучше писать доп. модули. Править код ядра – только в крайнем случае… Да и с обновлением будут проблемы…


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

Теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не спамер и не робот.
Я спамер и робот!

dimoning.ru
SEO и программирование.
  • Рубрики:



  • Рассылка:

  • Дополнительно:

  • По месяцам:

  • Счетчики:

    Яндекс цитирования

  • dimoning.ru © 2008-2011 г.
    Все материалы авторские, но их можно копировать с указанием прямой ссылки на источник.