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

SEO

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

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

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

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

Порывшись немного в документации по 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 больше. Их могло бы и не быть, если бы я хорошо порылся в документации. Но я не считаю, что проигрышь в пару сотых секунды спасет отца русской демократии ;) Так что не начинайте нудить, пожалуйста ;)

Related posts

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