Это продолжение поста о перелинковке статей.
Альтернатива этой функции находится по этой ссылке, в ней можно указать таксономию и тип записи, для которых будет происходить перелинковка.
В этой статье я хочу поделиться очередной функцией для WordPress, в задачи, которой входить вывод предыдущих записей из категории (рубрики), текущей статьи. ...
- Предыдущие по меткам
- Предыдущие записи
Ранее: SEO
- Перелинковка статей (предыдущие записи) ← 19.Апр.2010 // 51
- Плагин опроса для WordPress - Democracy Poll ← 12 Июнь 2010 // 110
- Плагин для легкого управления сайтом на WordPress ← 23 Апрель 2010 // 33
- Считаем количество посещений страниц на WordPress без плагинов ← 21 Апрель 2010 // 135
Супер! В ближайшее время будут тестировать. Спасибо!
P.S. Очень нравится как ты все описываешь, поясняешь, оформляешь. Очень доступно и понятно
Спасибо большое, за такие теплые слова!
Добрался, наконец. Обнаружил одну проблемку.
Шаблон даты у меня указан следующий: {date:j F Y г.}, и результат выглядит вот так: 16 Октябрь 2008 г.
Проблема заключается в следующем - я использую плагин MaxSite Russian Date, который вышеуказанный текст даты превращает в следующий вид: 16 октября 2008 г.
Но в результате выполнения твоей функции дата почему-то не поддается действию этого плагина. Сможешь починить?
Поправил.
Теперь к дате применяются фильтры the_time. Один из таких фильтров используется плагином MaxSite Russian Date.
Чтобы все заработало, нужно просто заменить код функции на новый (обновил код функции в посте).
Спасибо! Теперь все супер.
Спасибо, код отличный!
Единственное, что хотелось быв нем изменить, так это не показывать количество комментариев, если их нет. А то как-то сиротливо смотреть на нули.
Отличное замечание. Чтобы поправить в 72-й строке поменяйте это:
$Sformat = str_replace('{comments}', $pst->comment_count, $Sformat);на это:
$Sformat = str_replace('{comments}', (($pst->comment_count==0)?'':$pst->comment_count), $Sformat);В этом случае, если число комментов равно 0, то этот ноль просто не будет отображаться. Проблема может возникнуть, если счетчик комментария оформляется, например, так
заголовк статьи - дата (число комментов)и число комментов равно 0, то результат будет такойзаголовк статьи - дата ()(т.е. скобки останутся).П.С. Обновил код в посте
вот из этого поста, всё очень хорошо работает. ещё раз спасибо
Очень странно! На самом деле функция прекрасно воспринимает пермалинки, потому что в ней используется стандартная WordPress'овскя функция
get_permalink(). Правда, я не совсем понял из какого "поста, все очень хорошо работает", но раз что-то очень хорошо работает, то я определенно рад за вас!Привет. У Dimox взял код перелинковок как предыдущих по сайту, так и по категориям, он посоветовал зайти сюда. Я не силен в кодах, но судя по описанию изменения не принципиальные, верно? можно и старым кодом пользоваться, да?
А вопрос такой: код перелинковки по сайту выдает только предыдущие статьи, это хорошо для последней статьи, так как впереди ничего нет. Разумно ли сделать вывод как предыдущих статей, так и следующих в общей перелинковке сайта (не по категориям)?
Попробую "новый код" на другом сайте, сравню, может "новый" и лучше...
Конечно можно, тем более, если уже все настроено и нормально работает, менять код особого смысла нет. Этот код удобнее в основном за счет более простой настройки.
Если говорить о перелинковке как таковой, со своим вытекающим СЕО эффектом, то не вижу ничего разумного в том, чтобы выводить не только предыдущие записи, но еще и следующие - это лишнее. С другой стороны, для удобства в навигации для посетителей такое можно, а может даже, нужно сделать, но это уже другая тема
Как вариант, ставьте блок "Пердыдущие записи" и под статьей всегда ссылку на следующую запись, если таковая имеется (стандарт ВП
next_post_link()).У меня в конце странице есть ссылки на следующую и предыдущую записи. Меня больше интересовал вопрос относительно эффекта при выведении следующих записей, если это выведение записей не дает эффекта, тогда понятно, что оно не нужно. Разве что для посетителей
если хуже от этого не будет...
Дельная функция, интересно, даст ли эффект при расчете гугловского пейджранка ?
Попробую на одном из своих блогов, если прокатит такая перелинковка, то напишу миниобзор у себя на блоге.
Чего не знаю, того не знаю
Мне кажется при такой равномерной перелинковке PR может растворится, а может и наоборот, тут, наверное, все зависит от конкретного случая. Хотя, если честно, думаю на ПР лучше скажется перелинковка по меткам, т.к. останутся не попавшие в перелинковку страницы им "внутрений ПР" не будет светить, зато другим больше достанется (дотянут до получения хотябы ПР1), а ПР всем не нарастишь все-равно. Но и это для конкретного случая 
Будет интересно почитать, если получится выявить влияние такой перелинковки на ПР!
П.С. Все вышесказанное, лишь мысли вслух.
Действительно очень полезно, спасибо! С твоего позволения, размещу у себя эту статью.
Пы.Сы. со ссылкой на источник, конечно
кстати, было бы неплохо, чтобы циферка кол-ва коментов была ссылкой на коментарии к посту.
у меня получилось сделать это так:
foreach ($res as $pst){ $x == 'li1' ? $x = 'li2' : $x = 'li1'; $Title = $pst->post_title; $a1 = "<a href='". get_permalink($pst->ID) ."' title='{$Title}'>"; $a2 = "</a>"; $comment_count = $pst->comment_count; $com = (($comment_count==0)?'':"<a href='".get_permalink($pst->ID)."#comments'>".$comment_count."</a>"); if ($format){ $date = apply_filters('the_time', mysql2date($date_m[1],$pst->post_date)); $Sformat = str_replace ($date_m[0], $date, $format); $Sformat = str_replace('{title}', $Title, $Sformat); $Sformat = str_replace('{a}', $a1, $Sformat); $Sformat = str_replace('{/a}', $a2, $Sformat); $Sformat = str_replace('{comments}', $com, $Sformat); }понимаю, что немного кривовато, может подправите?
Сомнительное юзабилити, если честно.
С точки зрения SEO, такие ссылки точно - ничего хорошего, потому что, во-первых, лишние ссылки на странице, во-вторых, анкоры числовые - кажется это не есть гуд. А если подумать, то кто будет пользоваться такими ссылками? По названию статьи сразу переходить к комментариям, что-то из разряда, - "я и о спамерах подумал". Но, это конечно онли ИМХО
Вы правильно дополнили код, только собирать еще раз постоянную ссылку функцией
get_permalink- это лишнее. Вот, чуть-чуть поправил:foreach ($res as $pst){ $x == 'li1' ? $x = 'li2' : $x = 'li1'; $Title = $pst->post_title; $a1 = "<a href='".( $url=get_permalink($pst->ID) )."' title='{$Title}'>"; $a2 = "</a>"; $cc = $pst->comment_count; $com = ($cc==0)?'':"<a href='$url#comments'>$cc</a>"; if ($format){ $date = apply_filters('the_time', mysql2date($date_m[1],$pst->post_date)); $Sformat = str_replace ($date_m[0], $date, $format); $Sformat = str_replace('{title}', $Title, $Sformat); $Sformat = str_replace('{a}', $a1, $Sformat); $Sformat = str_replace('{/a}', $a2, $Sformat); $Sformat = str_replace('{comments}', $com, $Sformat); }я полностью согласен... просто старая привычка... если есть упоминание о комментариях, должна быть ссылка на них... спасибо за исправление.
День бодрый. Есть плагин internal_link_building, он слова в тексте делает ссылками.
Но он реально неудобен, потому-что его надо вручную заряжать в админке, каждое слово и отдельный урл. Можно ли как нибудь автоматизировать перелинковку статей? Т.е берутся например два рандомных слова в самом посте, и они будут ссылаться на две рандомно выбранные страницы сайта. Как в википедии.
Сделать можно конечно, только зачем это нужно - не качественная перелинковка будет ведь - никакой релевантности, никакой пользы для посетителей от этих ссылок не будет.
Я не понял смысла в такой рандомной перелицовке.
Там вроде все ссылки очень даже релевантные (по теме), я там рандома не замечал что-то.
Это больше нужно для внутренней оптимизации блога, для поисковых систем.
Это дорогое удовольствие, написать такой скрипт?
Еще вопрос) Большая ли разница в нагрузке на сервер, когда ссылки на странице прописаны в базе данных и когда эти ссылки вызываются каким нибудь плагином, например тем же related post? Подразумевается что записей не одна сотня.
Смотря что считать "дорого"
А вообще, ничего сложного в написании такого скрипта нет. Но в нем придется как-то продумать логику - куда ссылаться. Вообще, извините уж, но бредовая идея на мой взгляд. Что-то куда-то будет ссылаться - какая же это внутренняя оптимизация?
Разница конечно большая и тем она больше, чем больше статей. Когда ссылки прописаны в БД нагрузки по генерации этих ссылок вообще нет. Точно не знаю, нужно тестировать, а вообще думаю до тысячи статей нагрузка не смертельная будет. В любом случае, если можете работать с БД лучше в БД писать.
Здравствуйте. Очень заинтересовал этот скрипт, спасибо за проделанную работу, но мне немного не понятно куда например будет ссылаться самая ранняя статья, если скажем значение 5? На 5 самых новых или на 5 следующих по "старости"?
И еще 1 вопрос. Корректно ли будет работать перелинковка, если много статей будет опубликовано за 1 час? Скрипт берет минимальное значение в часах или минутах?
Я в программировании ничего не понимаю, так что извините, если вопросы слишком тупые оказались.
Ссылаться будет на 5 предыдущих (следующих по "старости"), если предыдущих меньше 5, то недостающие будут самые новые (это для первых 5 постов в рубрике, у них предыдущих 5 не наберется ведь).
Да, время учитывается вплоть до секунд.