Хак убирающий дублирование в теге more

Убираем в теге more WordPess добавочный параметр more-$id, который для поисковиков является новой ссылкой или дублем на один и тот-же текст.
Именованный анкор не является дублирующей ссылкой для контента, читайте в комментариях.

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

Находим файл wp-includes\post-template.php

Открываем его в редакторе и находим примерно в строке 221, код:

$output .= ' <a href="'. get_permalink() . "#more-$id\" class=\"more-link\">$more_link_text</a>";

И меняем его на:

$output .= ' <a href="'. get_permalink() . "\" class=\"more-link\">$more_link_text</a>";

Все, теперь ваша ссылка тега more будет выглядеть как в заголовке публикации, а не как еще одна ссылка на одну и туже публикацию.


Нашел ошибку в тексте? Выдели ее мышкой и нажми Система Orphus
Теги статьи: хак, Хитрости в коде
СЛЕДИТЕ ЗА НОВОСТЯМИ Подписаться на мой Twitter
Автор:Олег МедынскийРубрика: Хитрости в кодеПросмотров: 0
Разрешается перепечатка статьи с обязательным указанием открытой ссылки на источник.

КОММЕНТАРИИ К СТАТЬЕ

  1. 1.1

    Хороший совет, спасибо. Для блога то, что нужно.

  2. 1.2

    а что, разве поисковики именованный анкор (#more-xxx) посчитают новым URL-ом?
    кажется нет, или я ошибаюсь ?

    • 1.3

      Ссылка имеет другой вид чем ссылка поста. Для поисковиков это 2е разные ссылки. А т.к. 2е разные ссылки ведут на один и тотже контент в одном ресурсе это дубль. Возможно поисковики знают о теге more. Но лучше перестраховаться

  3. 1.4

    хм, вообще-то, всегда делал именно так (просто был свой дистриб ВП со всеми нужными плагинами и хаками, включая и этот), уже не помню как именно попал на твой блог с этой статьёй, просто прочёл, вспомнил знаковые пассы… и задумался — стоит ли замарачиваться или нет, в общем:
    если погуглить на данную тему, можно встретить массу постов советующих проделывать эту манипуляцию, однако, там просто репринты и копипасты, без анализа того, что получается в реальности и необходимости этих действий… кароче, поправь если ошибаюсь — ф-ция get_permalink() вернёт УРЛ на конкретную страницу (не важно, используется ли реврайт или нет) например, для этой «виртуальной» страницы, ф-ция вернёт
    http://www.wpbloging.com/hack/xak-ubirayushhij-dublirovanie-v-tege-more.html
    затем, конкатенация . «#more-$id\» сформирует урл вида

    http://www.wpbloging.com/hack/xak-ubirayushhij-dublirovanie-v-tege-more.html#more-$id

    то есть — именованный анкор (#more aka named link (C) W3C http://www.w3.org/TR/REC-html40/struct/links.html#h-12.1.3 ), которые поисковики прекрасно понимают )

    • 1.5

      Да, я в курсе о том что эта тема мусолилась блоггерами. Приводились разные способы избавления от этого именованного анкора. Зачем? Затем, что никто не уверен что поисковики действительно его понимают. В то время когда писалась эта статья был бум на избавление всего что создает дубли. В моей статье описан всего лишь один из способов удаления этого анкора, причем не самый хороший. Т.к. при обновлении WordPress все станет как было. Я считаю что ты прав, но считают ли так поисковики не знаю. Я думаю, что для того чтобы убедиться в безопасности такой ссылки, нужно задать вопрос самому Google. И честно говоря, таких ссылок с именованными анкорами в WordPress много, так что думаю можно не заморачиваться.

  4. 1.6

    в общем, тема актуальна для самого (стоит ли перелапачивать половину сырцов ВП после каждого апдейда или нет) посему написал Платонам (думаю, если яша правильно обрабатывает этот анкор, Гугл — тем более), ну… когда ответят — отпишусь )
    хотя, могу на 99% допускать. что поисковики понимают этот вид линки, и не считают её за отдельный URL (URI — ессно. но не УРЛ)

    • 1.7

      Удивляюсь, почему идея задать вопрос поисковикам мне не пришла раньше. Молодец. Обязательно отпишись по результатам.

  5. 1.8

    Прописал код по примеру.
    Parse error: syntax error, unexpected ‘;’ in /home/u55447/mykahovkaru/blog/wp-includes/post-template.php on line 226
    Теперь вот такую надпись получаю.

    • 1.9

      Это проблема с синтаксисом. Проверьте все ли кавычки на месте и в конце строки должно стоять ‘;’ без кавычек

  6. 1.10

    Все нормально, почти. Решил поставить блог на основной домен. Был под домене. Но тока у меня вопрос, а если тег является дублем, это очень плохо*?

    • 1.11

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

  7. 1.12

    Платон это кто?
    Тока начинаю познавать азы ведения блога. Решил начать с оптимизации.

  8. 1.13

    В общем, странно, но от Яндекса до сих пор никакого ответа, поэтому, решил спросить непосредственно здесь: http://www.google.com/support/forum/p/webmasters/thread?tid=33b23ae4ea4447a4&hl=ru
    ну собсно, как и следовало ожидать, гугле (да и любой поисковик, скорее-всего включая что-то типа экзотики го-го и т.д.) правильно работают с именованными якорями, то есть не считают их за новый урл. В принципе то я и не сомневался, так как кто-кто но СЕ RFC должны имплементировать совершенно корректно, тем более такие как гугле и йандыкс.

    зы: по вышеприведённой линке на форуме гугла, я конечно надеялся получить официальный ответ представителя компании (есть там такая девушка Оксана 😉 но в принципе отписавшийся там человек лишный раз подтвердил мои соображения по этому поводу. Кто до сих пор считает, что гугле будет named anchors счиатть отдельными линками, которые нужно индексировать — просто проследите за темой на форуме гугла, дл себя же решил по этому поводу больше не замарачиваться…
    ну если что от йандыкса появится — отпишусь. удачи

    • 1.14

      Спасибо большое. Платон обычно отвечает в течении 2х недель. Думаю его ответ будет аналогичен гуглу. Тему можно закрывать.

  9. 1.15

    Так ответил что-нибудь яндекс или нет?

    • 1.16

      Честно говоря не проверял

  10. 1.17

    Проверьте. Интересно ведь знать, что вам ответили.

  11. 1.18

    хоть, вроде, как выяснилось, поисковикам без разницы. попробовал сделать так. теперь после нажатия «читать далее» статья открывается с самого начала, а не после тега more

  12. 1.20

    Провела манипуляцию по вашему совету, у меня ничего не поменялось. В post php есть такая строка
    <a href="#more-» title=»» rel=»bookmark»>option(‘read_more’); ?>

    Быть может здесь поковырять?

    • 1.21

      :) Даниля, в этой ссылке уже стоит #more, уберите его. А вообще с этим можно не заморачиваться. Поисковики давно понимают такие ссылки. Тем более что для Гугла это иногда даже полезно.

  13.  


Ваши вопросы, замечания, пожелания и предложения, по работе сайта, пишите на E-mail.