Внутренняя перелинковка страниц блога WP

Внутренняя перелинковка страниц блога является достаточно важным пунктом в оптимизации блога под низкочастотные запросы. По сравнению с ВЧ( высокочастотные запросы), конкуренция по низкочастотникам в поисковиках довольно небольшая. Поэтому есть смысл для привлечения трафика на блог продвигать его по низкочастотным запросам. Многие поисковые системы, при поисковой выдаче учитывают статический вес страниц. И чем этот статический вес страницы будет выше, тем выше эта страница будет стоять в поисковой выдаче по данному запросу. Как же увеличить статический вес страницы? Да просто - при помощи ссылок, причем, как внешних, так и внутренних. Вот и попробуем "налить" веса своим страницам, используя внутренние ссылки, а попросту  - делая перелинковку блога. Для перелинковки статей блога WordPress существует множество плагинов. Об одном из таких плагинов - WordPress Related Post я уже писал. Всем хороши плагины. Но при большом их использовании - значительно замедляется скорость загрузки страницы. И как следствие - потенциальный посетитель просто уходит, так и не зайдя на Ваш блог. Ведь не у каждого еще в нашей стране имеется высокоскоростной и безлимитный интернет. Да и поисковые системы в последнее время стали пессимизировать медленные блоги и сайты. Вот мы сегодня и поговорим, как можно произвести перелинковку блога WordPress без использования плагинов.

Как уже говорилось, плагины потребляют много ресурсов и большое их количество использовать на блоге не целесообразно. Тем более, что внутреннюю перелинковку блога можно сделать и не прибегая к их помощи. Существует несколько способов и каждый из них  хорош по своему. Все их я перечислять не буду, остановлюсь лишь на тех, которые сам использую.

Методы перелинковки блога WordPress основаны на добавлении определенного кода в файл Вашего шаблона  single.php., в то место, где Вы хотели бы созерцать "Предыдущие Записи". Вывод предыдущих записей  можно сделать при наличии одинаковых тегов, если конечно Вы их используете, или же просто вывод предыдущих  N-записей с данной рубрики.

Внутренняя перелинковка страниц с использованием тегов

view sourceprint?
01.</p>
02.<div class="php codecolorer" style="white-space: nowrap;"><span class="kw2">&lt;?php</span><br />
03. <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">-&gt;</span><span class="me1">ID</span><span class="br0">)</span><span class="sy0">;</span><br />
04. <span class="kw1">if</span> <span class="br0">(</span><span class="re0">$tags</span><span class="br0">)</span> <span class="br0">{</span><br />
05. <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 />
06. <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">-&gt;</span><span class="me1">term_id</span><span class="sy0">;</span><br />
07. <br />
08. <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 />
09. <span class="st_h">&#39;tag__in&#39;</span> <span class="sy0">=&gt;</span> <span class="re0">$tag_ids</span><span class="sy0">,</span><br />
10. <span class="st_h">&#39;post__not_in&#39;</span> <span class="sy0">=&gt;</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">-&gt;</span><span class="me1">ID</span><span class="br0">)</span><span class="sy0">,</span><br />
11. <span class="st_h">&#39;showposts&#39;</span><span class="sy0">=&gt;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="co1">// Количество записей для вывода.</span><br />
12. <span class="st_h">&#39;caller_get_posts&#39;</span><span class="sy0">=&gt;</span>1<br />
13. <span class="br0">)</span><span class="sy0">;</span><br />
14. <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 />
15. <span class="kw1">if</span><span class="br0">(</span> <span class="re0">$my_query</span><span class="sy0">-&gt;</span><span class="me1">have_posts</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">)</span> <span class="br0">{</span><br />
16. <span class="kw1">echo</span> <span class="st_h">&#39;&lt;h3&gt;Похожие записи&lt;/h3&gt;&lt;ul&gt;&#39;</span><span class="sy0">;</span><br />
17. <span class="kw1">while</span> <span class="br0">(</span><span class="re0">$my_query</span><span class="sy0">-&gt;</span><span class="me1">have_posts</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span><br />
18. <span class="re0">$my_query</span><span class="sy0">-&gt;</span><span class="me1">the_post</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br />
19. <span class="sy1">?&gt;</span><br />
20. &lt;li&gt;&lt;a href=&quot;<span class="kw2">&lt;?php</span> the_permalink<span class="br0">(</span><span class="br0">)</span> <span class="sy1">?&gt;</span>&quot; rel=&quot;bookmark&quot; title=&quot;Постоянная ссылка на <span class="kw2">&lt;?php</span> the_title_attribute<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot;&gt;<span class="kw2">&lt;?php</span> the_title<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/a&gt;&lt;/li&gt;<br />
21. <span class="kw2">&lt;?php</span><br />
22. <span class="br0">}</span><br />
23. <span class="kw1">echo</span> <span class="st_h">&#39;&lt;/ul&gt;&#39;</span><span class="sy0">;</span><br />
24. <span class="br0">}</span><br />
25. <span class="br0">}</span><br />
26. <span class="sy1">?&gt;</span></div>
27.<p><br />
28. <br />
29.

При данной перелинковке статей похожие записи отыскиваются при наличии одинаковых тегов в статьях. Минусом данного способа является то, что некоторые статьи могут вообще остаться без  ссылок с других статей. Причина может быть банальна - просто не найдется одинакового тега в статьях.

Внутренняя перелинковка без использования тегов

Данный способ перелинковки блога мне больше нравится. С его помощью можно вывести n-количество страниц из той же рубрики, где размещена статья.

По мимо того что этот способ использует намного меньше ресурсов чем аналогичные плагины, он также более логично перелинковывает все страницы. У Вас не получится такая ситуация что на некоторые страницы будут 1-2 ссылки, а на другие по 10 ссылок, при использовании этого способа на каждую запись у Вас всегда будет по 5 ссылающихся страниц! Также плюсом можно назвать и постоянность ссылок, т.е. они не буду изменяться при появлении новых записей.

 

view sourceprint?
01.</p>
02.<div class="php codecolorer" style="white-space: nowrap;"><span class="kw2">&lt;?php</span><br />
03. <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 />
04. <br />
05. <span class="re0">$num</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
06. <span class="kw2">global</span> <span class="re0">$wpdb</span><span class="sy0">;</span><br />
07. <br />
08. <span class="re0">$sql</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT wposts.*<br />
09. FROM <span class="es4">$wpdb-&gt;posts</span> wposts<br />
10. LEFT JOIN <span class="es4">$wpdb-&gt;term_relationships</span> ON (wposts.ID = <span class="es4">$wpdb-&gt;term_relationships</span>.object_id)<br />
11. LEFT JOIN <span class="es4">$wpdb-&gt;term_taxonomy</span> ON (<span class="es4">$wpdb-&gt;term_relationships</span>.term_taxonomy_id = <span class="es4">$wpdb-&gt;term_taxonomy</span>.term_taxonomy_id)<br />
12. WHERE <span class="es4">$wpdb-&gt;term_taxonomy</span>.taxonomy = &#39;category&#39;<br />
13. AND <span class="es4">$wpdb-&gt;term_taxonomy</span>.term_id = &#39;<span class="es4">$the_category_id</span>&#39;<br />
14. AND wposts.post_status = &#39;publish&#39;<br />
15. AND wposts.post_type = &#39;post&#39;<br />
16. AND wposts.ID &lt; &#39;<span class="es4">$the_post_id</span>&#39;<br />
17. ORDER BY wposts.ID DESC<br />
18. LIMIT <span class="es4">$post_num</span>&quot;</span><span class="sy0">;</span><br />
19. <br />
20. <span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$wpdb</span><span class="sy0">-&gt;</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 />
21. <span class="kw2">global</span> <span class="re0">$post</span><span class="sy0">;</span><br />
22. <span class="sy1">?&gt;</span><br />
23. &lt;ul&gt;<br />
24. <span class="kw2">&lt;?php</span><br />
25. <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 />
26. setup_postdata<span class="br0">(</span><span class="re0">$post</span><span class="br0">)</span><span class="sy0">;</span><br />
27. <span class="sy1">?&gt;</span><br />
28. &lt;li&gt;&lt;a href=&quot;<span class="kw2">&lt;?php</span> the_permalink<span class="br0">(</span><span class="br0">)</span> <span class="sy1">?&gt;</span>&quot; rel=&quot;bookmark&quot;&gt;<span class="kw2">&lt;?php</span> the_title<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/a&gt;&lt;/li&gt;<br />
29. <span class="kw2">&lt;?php</span><br />
30. <span class="re0">$num</span><span class="sy0">++;</span><br />
31. <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">-&gt;</span><span class="me1">ID</span><span class="sy0">;</span><br />
32. <span class="br0">}</span><br />
33. <span class="kw1">if</span> <span class="br0">(</span> <span class="re0">$num</span> <span class="sy0">&lt;</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 />
34. <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 />
35. <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 />
36. <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">&#39;,&#39;</span><span class="sy0">,</span> <span class="re0">$save_ids</span><span class="br0">)</span><span class="sy0">;</span><br />
37. <span class="re0">$more_posts</span> <span class="sy0">=</span> get_posts<span class="br0">(</span><span class="st0">&quot;numberposts=<span class="es4">$need_more</span>&amp;category=<span class="es4">$the_category_id</span>&amp;exclude=<span class="es4">$save_ids</span>&quot;</span><span class="br0">)</span><span class="sy0">;</span><br />
38. <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 />
39. setup_postdata<span class="br0">(</span><span class="re0">$post</span><span class="br0">)</span><span class="sy0">;</span><br />
40. <span class="sy1">?&gt;</span><br />
41. &lt;li&gt;&lt;a href=&quot;<span class="kw2">&lt;?php</span> the_permalink<span class="br0">(</span><span class="br0">)</span> <span class="sy1">?&gt;</span>&quot; rel=&quot;bookmark&quot;&gt;<span class="kw2">&lt;?php</span> the_title<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/a&gt;&lt;/li&gt;<br />
42. <span class="kw2">&lt;?php</span><br />
43. <span class="br0">}</span><br />
44. <span class="br0">}</span><br />
45. <span class="sy1">?&gt;</span><br />
46. &lt;/ul&gt;<br />
47. <span class="kw2">&lt;?php</span> <span class="br0">}</span> <span class="sy1">?&gt;</span><br />
48. <br />
49. <span class="kw2">&lt;?php</span><br />
50. <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 />
51. <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">-&gt;</span><span class="me1">cat_ID</span><span class="sy0">;</span><br />
52. show_previous_posts_from_category<span class="br0">(</span><span class="re0">$post</span><span class="sy0">-&gt;</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 />
53. wp_reset_query<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br />
54. <span class="sy1">?&gt;</span></div>
55.<p>

Мне больше всего нравится второй способ. Все статьи получают определенное количество ссылок и тем самым блог отлично перелинковывается.