Внутренняя перелинковка сайта
Внутренняя перелинковка страниц сайта.
Внутренняя перелинковка сайта необходима для эффективной индексации сайта в поисковых системах, а особенно она важна для PR по Google, что бы увеличить PR важных страниц сайта и не потерять вес главной страницы.
Продолжаем работать над нашем блогом и доводить его до совершенства 🙂
Сегодня в интернете есть большое количество плагинов для внутренней перелинковки сайта. Правда не всегда пользоваться такими плагинами достаточно удобно. Во-первых они требуют много ресурсов, что замедляет загрузку блога, во-вторых настройка таких переликовочных плагинов сложновата и требует большой точности в выбираемых фразах для перелинковки.
Мы будем делать перелинковку страниц сайта без использования плагина. С помощью этого способа мы выводим на странице каждого поста несколько предыдущих записей из данной рубрики, которой принадлежит пост.
Чтобы осуществить такую перелинковку сайта Вам необходимо вставить ниже приведенный код в файл single.php, там где вы хотите видеть «Предыдущие записи»:
<?php function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) { $num = 0; global $wpdb; $sql = "SELECT wposts.* FROM $wpdb->posts wposts LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id = '$the_category_id' AND wposts.post_status = 'publish' AND wposts.post_type = 'post' AND wposts.ID < '$the_post_id' ORDER BY wposts.ID DESC LIMIT $post_num"; $result = $wpdb->get_results($sql, OBJECT); global $post; ?> <ul> <?php foreach ($result as $post) { setup_postdata($post); ?> <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php $num++; $save_ids[] = $post->ID; } if ( $num < $post_num || !$result ) { $need_more = $post_num-$num; $save_ids[] = $the_post_id; $save_ids = join (',', $save_ids); $more_posts = get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids"); foreach ($more_posts as $post){ setup_postdata($post); ?> <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php } } ?> </ul> <?php } ?> <?php $the_cat = get_the_category(); $the_cat_id = $the_cat[0]->cat_ID; show_previous_posts_from_category($post->ID, $the_cat_id, 5); wp_reset_query(); ?>
В строке №50 можно изменить количество выводимого материала. По умолчанию стоит цифра 5. Я думаю это оптимальный вариант.
Такой способ намного логичнее делает внутреннюю перелинковку сайта и потребляет меньше ресурсов. Вы избежите ситуации, когда на одну страницу у вас десять ссылок, а на другую всего одна или две. В нашем случае на страницу всегда будет пять ссылок. Конечно если у вас в рубрике не одна запись.
Ссылки будут постоянными и не будут меняться с появлением новых постов, что немаловажно для поисковиков.
Удачи Вам и процветания.
- Установка WordPress на хостинг - 11.05.2017
- Хостинг для WordPress - 26.04.2017
- 7 советов как ускорить WordPress - 18.01.2017
- WordPress плагины вывода популярных постов - 25.07.2016
- Готовим ваш сайт для мобильных устройств? - 29.06.2016
Как преодолеть технические сложности
|
Javascript + jQuery
|
Профессиональный сайт за один день.
|
Это уже шлифовка бриллианта. Но сначала его найти надо.
Очень понравился блог и эта статья в частности. я сегодня у Вас впервые в гостях. Спасибо большое за статью, за код, надеюсь что он мне поможет в продвижении, а то у меня первый блог на вордпресс и что-то «хромает на обе ноги». Взяла ваш блог на заметку, щас прочирикаю по всем социалкам, чтобы Вас не потерять. Буду учиться у профи. 🙂 Спасибо!!!
Спасибо за отзыв! 🙂
Всегда рад помочь!
Только что, на одном сайте(не буду писать чтоб не рекламировать) видел плагин, который админ продает за 22$, а делает он тоже самое, но гораздо хуже и не красиво! А здесь все бесплатно!
Автору спасибо!
Спасибо Александр за статью. Только я не понял как это сделать. Тяжело мне эта наука дается.
Виталий, я вам уже это сделал. 🙂
Как мне кажется, лучше ручной перелинковки ничего нет, но и автоматическая не помешает, а без плагина вообще красота, не будет нагружать и без того громоздкий движок. Её нужно обязательно сделать и обязательно ссылаться на релевантные странички.
Перелинковка особенно важна если блог молодой, страницам нужен вес а так как яндекс плохо относится к покупным ссылкам, то это вполне заменит платную раскрутку на бесплатную.
Спасибо огромное!!! Сделал у себя на сайте- все получилось без проблем. Скажите а как вставить оглавление перед этими 5 статьями типа «Еще 5 статей на эту тему»?
Михаил, надпись надо вставлять в файл single.php, который отвечает за отдельные посты.
Так это понятно, я спосил вот о чем. Предлагаемый код в этой статье я вставил, похожие статьи у меня показываются, все нормально, но надо как то заголовок к ним сделать…
Как это оформить- может както этот код дописать? Или перед этим кодом еще однин вставить- уже с заголовком? Буду признателен если раскажите как это сделать, я тут затрудняюсь…
Вы правы, надо перед кодом добавить надпись, в коде ничего менять нельзя! Надпись вы можете оформить с помощью css правил.