Внутренняя перелинковка страниц блога является достаточно важным пунктом в оптимизации блога под низкочастотные запросы. По сравнению с ВЧ( высокочастотные запросы), конкуренция по низкочастотникам в поисковиках довольно небольшая. Поэтому есть смысл для привлечения трафика на блог продвигать его по низкочастотным запросам. Многие поисковые системы, при поисковой выдаче учитывают статический вес страниц. И чем этот статический вес страницы будет выше, тем выше эта страница будет стоять в поисковой выдаче по данному запросу. Как же увеличить статический вес страницы? Да просто - при помощи ссылок, причем, как внешних, так и внутренних. Вот и попробуем "налить" веса своим страницам, используя внутренние ссылки, а попросту - делая перелинковку блога. Для перелинковки статей блога WordPress существует множество плагинов. Об одном из таких плагинов - WordPress Related Post я уже писал. Всем хороши плагины. Но при большом их использовании - значительно замедляется скорость загрузки страницы. И как следствие - потенциальный посетитель просто уходит, так и не зайдя на Ваш блог. Ведь не у каждого еще в нашей стране имеется высокоскоростной и безлимитный интернет. Да и поисковые системы в последнее время стали пессимизировать медленные блоги и сайты. Вот мы сегодня и поговорим, как можно произвести перелинковку блога WordPress без использования плагинов.
Как уже говорилось, плагины потребляют много ресурсов и большое их количество использовать на блоге не целесообразно. Тем более, что внутреннюю перелинковку блога можно сделать и не прибегая к их помощи. Существует несколько способов и каждый из них хорош по своему. Все их я перечислять не буду, остановлюсь лишь на тех, которые сам использую.
Методы перелинковки блога WordPress основаны на добавлении определенного кода в файл Вашего шаблона single.php., в то место, где Вы хотели бы созерцать "Предыдущие Записи". Вывод предыдущих записей можно сделать при наличии одинаковых тегов, если конечно Вы их используете, или же просто вывод предыдущих N-записей с данной рубрики.
Внутренняя перелинковка страниц с использованием тегов
</p> <div class="php codecolorer" style="white-space: nowrap;"><span class="kw2"><?php</span><br /> <span class="re0">$tags</span> <span class="sy0">=</span> wp_get_post_tags<span class="br0">(</span><span class="re0">$post</span><span class="sy0">-></span><span class="me1">ID</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="kw1">if</span> <span class="br0">(</span><span class="re0">$tags</span><span class="br0">)</span> <span class="br0">{</span><br /> <span class="re0">$tag_ids</span> <span class="sy0">=</span> <noindex><a rel="nofollow" class="pageNoFollow_hilite" href="http://www.wp-info.ru/goto/http://www.php.net/array" rel="nofollow" target="_blank"><span class="kw3">array</span></a></noindex><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="kw1">foreach</span><span class="br0">(</span><span class="re0">$tags</span> <span class="kw1">as</span> <span class="re0">$individual_tag</span><span class="br0">)</span> <span class="re0">$tag_ids</span><span class="br0">[</span><span class="br0">]</span> <span class="sy0">=</span> <span class="re0">$individual_tag</span><span class="sy0">-></span><span class="me1">term_id</span><span class="sy0">;</span><br /> <br /> <span class="re0">$args</span><span class="sy0">=</span><noindex><a rel="nofollow" class="pageNoFollow_hilite" href="http://www.wp-info.ru/goto/http://www.php.net/array" rel="nofollow" target="_blank"><span class="kw3">array</span></a></noindex><span class="br0">(</span><br /> <span class="st_h">'tag__in'</span> <span class="sy0">=></span> <span class="re0">$tag_ids</span><span class="sy0">,</span><br /> <span class="st_h">'post__not_in'</span> <span class="sy0">=></span> <noindex><a rel="nofollow" class="pageNoFollow_hilite" href="http://www.wp-info.ru/goto/http://www.php.net/array" rel="nofollow" target="_blank"><span class="kw3">array</span></a></noindex><span class="br0">(</span><span class="re0">$post</span><span class="sy0">-></span><span class="me1">ID</span><span class="br0">)</span><span class="sy0">,</span><br /> <span class="st_h">'showposts'</span><span class="sy0">=></span><span class="nu0">5</span><span class="sy0">,</span> <span class="co1">// Количество записей для вывода.</span><br /> <span class="st_h">'caller_get_posts'</span><span class="sy0">=></span>1<br /> <span class="br0">)</span><span class="sy0">;</span><br /> <span class="re0">$my_query</span> <span class="sy0">=</span> <span class="kw2">new</span> wp_query<span class="br0">(</span><span class="re0">$args</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="kw1">if</span><span class="br0">(</span> <span class="re0">$my_query</span><span class="sy0">-></span><span class="me1">have_posts</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">)</span> <span class="br0">{</span><br /> <span class="kw1">echo</span> <span class="st_h">'<h3>Похожие записи</h3><ul>'</span><span class="sy0">;</span><br /> <span class="kw1">while</span> <span class="br0">(</span><span class="re0">$my_query</span><span class="sy0">-></span><span class="me1">have_posts</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span><br /> <span class="re0">$my_query</span><span class="sy0">-></span><span class="me1">the_post</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="sy1">?></span><br /> <li><a href="<span class="kw2"><?php</span> the_permalink<span class="br0">(</span><span class="br0">)</span> <span class="sy1">?></span>" rel="bookmark" title="Постоянная ссылка на <span class="kw2"><?php</span> the_title_attribute<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?></span>"><span class="kw2"><?php</span> the_title<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?></span></a></li><br /> <span class="kw2"><?php</span><br /> <span class="br0">}</span><br /> <span class="kw1">echo</span> <span class="st_h">'</ul>'</span><span class="sy0">;</span><br /> <span class="br0">}</span><br /> <span class="br0">}</span><br /> <span class="sy1">?></span></div> <p><br /> <br />
При данной перелинковке статей похожие записи отыскиваются при наличии одинаковых тегов в статьях. Минусом данного способа является то, что некоторые статьи могут вообще остаться без ссылок с других статей. Причина может быть банальна - просто не найдется одинакового тега в статьях.
Внутренняя перелинковка без использования тегов
Данный способ перелинковки блога мне больше нравится. С его помощью можно вывести n-количество страниц из той же рубрики, где размещена статья.
По мимо того что этот способ использует намного меньше ресурсов чем аналогичные плагины, он также более логично перелинковывает все страницы. У Вас не получится такая ситуация что на некоторые страницы будут 1-2 ссылки, а на другие по 10 ссылок, при использовании этого способа на каждую запись у Вас всегда будет по 5 ссылающихся страниц! Также плюсом можно назвать и постоянность ссылок, т.е. они не буду изменяться при появлении новых записей.
</p> <div class="php codecolorer" style="white-space: nowrap;"><span class="kw2"><?php</span><br /> <span class="kw2">function</span> show_previous_posts_from_category <span class="br0">(</span><span class="re0">$the_post_id</span><span class="sy0">,</span> <span class="re0">$the_category_id</span> <span class="sy0">=</span> 0<span class="sy0">,</span> <span class="re0">$post_num</span><span class="br0">)</span> <span class="br0">{</span><br /> <br /> <span class="re0">$num</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br /> <span class="kw2">global</span> <span class="re0">$wpdb</span><span class="sy0">;</span><br /> <br /> <span class="re0">$sql</span> <span class="sy0">=</span> <span class="st0">"SELECT wposts.*<br /> FROM <span class="es4">$wpdb->posts</span> wposts<br /> LEFT JOIN <span class="es4">$wpdb->term_relationships</span> ON (wposts.ID = <span class="es4">$wpdb->term_relationships</span>.object_id)<br /> LEFT JOIN <span class="es4">$wpdb->term_taxonomy</span> ON (<span class="es4">$wpdb->term_relationships</span>.term_taxonomy_id = <span class="es4">$wpdb->term_taxonomy</span>.term_taxonomy_id)<br /> WHERE <span class="es4">$wpdb->term_taxonomy</span>.taxonomy = 'category'<br /> AND <span class="es4">$wpdb->term_taxonomy</span>.term_id = '<span class="es4">$the_category_id</span>'<br /> AND wposts.post_status = 'publish'<br /> AND wposts.post_type = 'post'<br /> AND wposts.ID < '<span class="es4">$the_post_id</span>'<br /> ORDER BY wposts.ID DESC<br /> LIMIT <span class="es4">$post_num</span>"</span><span class="sy0">;</span><br /> <br /> <span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$wpdb</span><span class="sy0">-></span><span class="me1">get_results</span><span class="br0">(</span><span class="re0">$sql</span><span class="sy0">,</span> OBJECT<span class="br0">)</span><span class="sy0">;</span><br /> <span class="kw2">global</span> <span class="re0">$post</span><span class="sy0">;</span><br /> <span class="sy1">?></span><br /> <ul><br /> <span class="kw2"><?php</span><br /> <span class="kw1">foreach</span> <span class="br0">(</span><span class="re0">$result</span> <span class="kw1">as</span> <span class="re0">$post</span><span class="br0">)</span> <span class="br0">{</span><br /> setup_postdata<span class="br0">(</span><span class="re0">$post</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="sy1">?></span><br /> <li><a href="<span class="kw2"><?php</span> the_permalink<span class="br0">(</span><span class="br0">)</span> <span class="sy1">?></span>" rel="bookmark"><span class="kw2"><?php</span> the_title<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?></span></a></li><br /> <span class="kw2"><?php</span><br /> <span class="re0">$num</span><span class="sy0">++;</span><br /> <span class="re0">$save_ids</span><span class="br0">[</span><span class="br0">]</span> <span class="sy0">=</span> <span class="re0">$post</span><span class="sy0">-></span><span class="me1">ID</span><span class="sy0">;</span><br /> <span class="br0">}</span><br /> <span class="kw1">if</span> <span class="br0">(</span> <span class="re0">$num</span> <span class="sy0"><</span> <span class="re0">$post_num</span> <span class="sy0">||</span> <span class="sy0">!</span><span class="re0">$result</span> <span class="br0">)</span> <span class="br0">{</span><br /> <span class="re0">$need_more</span> <span class="sy0">=</span> <span class="re0">$post_num</span><span class="sy0">-</span><span class="re0">$num</span><span class="sy0">;</span><br /> <span class="re0">$save_ids</span><span class="br0">[</span><span class="br0">]</span> <span class="sy0">=</span> <span class="re0">$the_post_id</span><span class="sy0">;</span><br /> <span class="re0">$save_ids</span> <span class="sy0">=</span> <noindex><a rel="nofollow" href="http://www.wp-info.ru/goto/http://www.php.net/join" rel="nofollow" target="_blank"><span class="kw3">join</span></a></noindex> <span class="br0">(</span><span class="st_h">','</span><span class="sy0">,</span> <span class="re0">$save_ids</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="re0">$more_posts</span> <span class="sy0">=</span> get_posts<span class="br0">(</span><span class="st0">"numberposts=<span class="es4">$need_more</span>&category=<span class="es4">$the_category_id</span>&exclude=<span class="es4">$save_ids</span>"</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="kw1">foreach</span> <span class="br0">(</span><span class="re0">$more_posts</span> <span class="kw1">as</span> <span class="re0">$post</span><span class="br0">)</span><span class="br0">{</span><br /> setup_postdata<span class="br0">(</span><span class="re0">$post</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="sy1">?></span><br /> <li><a href="<span class="kw2"><?php</span> the_permalink<span class="br0">(</span><span class="br0">)</span> <span class="sy1">?></span>" rel="bookmark"><span class="kw2"><?php</span> the_title<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?></span></a></li><br /> <span class="kw2"><?php</span><br /> <span class="br0">}</span><br /> <span class="br0">}</span><br /> <span class="sy1">?></span><br /> </ul><br /> <span class="kw2"><?php</span> <span class="br0">}</span> <span class="sy1">?></span><br /> <br /> <span class="kw2"><?php</span><br /> <span class="re0">$the_cat</span> <span class="sy0">=</span> get_the_category<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="re0">$the_cat_id</span> <span class="sy0">=</span> <span class="re0">$the_cat</span><span class="br0">[</span>0<span class="br0">]</span><span class="sy0">-></span><span class="me1">cat_ID</span><span class="sy0">;</span><br /> show_previous_posts_from_category<span class="br0">(</span><span class="re0">$post</span><span class="sy0">-></span><span class="me1">ID</span><span class="sy0">,</span> <span class="re0">$the_cat_id</span><span class="sy0">,</span> 5<span class="br0">)</span><span class="sy0">;</span><br /> wp_reset_query<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="sy1">?></span></div> <p>
Мне больше всего нравится второй способ. Все статьи получают определенное количество ссылок и тем самым блог отлично перелинковывается.
У меня в некоторых постах выводится лишь по одной ссылке
А сколько у Вас статей в рубрике?
Интересный способ! Спасибо за информацию, обязательно попробую в своем блоге!
У себя использую обычный плагин для перелинковки, однако раньше не задавался вопросом распределения ссылок.
Второй способ намного удобнее, ссылки будут распределятся равномерно,
Отличные способы, обязательно их попробую.
Способ конечно интересный, но проще установить плагин, не потребляющий большое колличество системных ресурсов и не нагружающий блог.
Любой плагин будет нагружать блог, а подобрать минимальные программы-это дело опыта.
Я использую стандартный плагин . Пока в этом не нуждаюсь.