Добрый день, уважаемы читатели. Сегодня я хочу поговорить об одной очень важной вещи — о перелинковке. В этой статье я расскажу, зачем она нужна, и как сделать правильную перелинковку для wordpress.
Начнем с того, зачем же нужна эта перелинковка. Самое главное — это трафик. Правильная перелинковка помогает собрать огромное количество НЧ трафика, который так важен для успешного сайта. По статистике, большинство крупных порталов имеют около 50-70% именно НЧ трафика, а не СЧ и ВЧ, на долю которых приходится до 40-50% посетителей. Однако нужно помнить, что трафиковое продвижение, которое и заключается в сборе НЧ трафика, не подразумевает только лишь создание перелинковки. Трафиковое продвижение — это целая наука, о которой я и буду писать в следующих постах.
Итак, я думаю, что Вы уже загорелись создать перелинковку на своем wordpress блоге. Ну, что же, приступим. Однако, есть ещё некоторая информация, которую я обязан вам сказать:
Теперь, мы дошли до скрипта. Скрипт, который будет представлен ниже, выполняет следующие функции: он берет X (вы задаете это число сами) id статей, находящихся до вашей статьи в этой же рубрике, и выводит ссылки на них. Разберем на примере: у этой статьи id = 255, она находится в рубрике SEO, скрипт найдёт в бд статьи, относящиеся к рубрики SEO и выберет X предыдущих статей, то есть, возьмет статьи с id=249,250,251,252,253,254 (для X=6).
Чем хорош данный скрипт? Во-первых, только у первых X записей ссылки будут моргать, у других записей они будут постоянными. Во-вторых, каждая запись (если статей большем, чем Х), получает ссылки ровно с Х статей. В-третьих, перелинкова идёт по рубрике, что делает статьи на самом деле похожими. В-четвертых, если у вас есть рубрика, куда вы публикуете продажные статьи, то нормальные разделы их не будут прокачивать.
Данный скрипт, я считаю — это лучшая перелинковка для wordpress. Его авторы — владелец одного из лучших блогов по wordpress — dimox.name, и выдающийся человек, автор многих плагинов и скриптов для wordpress — wp-kama.ru.
Скрипт:
<?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(); ?>
Использование: для того чтобы вызвать перелинковку в записи, вы должны в файле single.php (после the_content()) написать скрипт, который я привел выше.
Количество ссылок, которые будет выводить скрипт, изменяется в предпоследней строке. В данном случае скрипт будет выводить 5 последних записей из этой же рубрики.
Если вы захотите сделать перелинковку с миниатюрой и описанием в 50-100 символов, то пишите в комментарии, я дам вам код скрипта, который сделает это (основа моего скрипта — этот скрипт).
———
Обновление. В комментариях попросили добавить код, который выведет похожие записи с миниатюрами и текстовым анонсом. Для того чтобы использовать этот код вам нужно:
1) Установить плагин для ресайза картинок от wp-kama.
2) Добавить в functions.php вашей темы следующий код:
function the_excerpt_max_charlength($charlength) { $excerpt = get_the_excerpt(); $charlength++; if(strlen($excerpt)>$charlength) { $subex = substr($excerpt,0,$charlength-5); $exwords = explode(" ",$subex); $excut = -(strlen($exwords[count($exwords)-1])); if($excut<0) { echo substr($subex,0,$excut); } else { echo $subex; } echo "..."; } else { echo $excerpt; } }
3) Добавить в single.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, 2); wp_reset_query(); ?> <?php // perelinkovka ?> <?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; ?> <div class="drugie-stati"> <?php foreach ($result as $post) { setup_postdata($post); ?> <div class="odna_statya"> <img src="<?php echo kama_thumb_src ('w=100 &h=75 &q=100'); ?>" alt="<?php the_title(); ?>" width="100" height="75" title="<?php the_title(); ?>" /> <div class="coderzyanie_odnoj_stati"> <a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> <!--noindex--> <?php the_excerpt_max_charlength(412); ?> <!--/noindex--> </div> </div> <?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); ?> <div class="odna_statya"> <img src="<?php echo kama_thumb_src ('w=100 &h=75 &q=100'); ?>" alt="<?php the_title(); ?>" width="100" height="75" title="<?php the_title(); ?>" /> <div class="coderzyanie_odnoj_stati"> <a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> <!--noindex--><?php the_excerpt_max_charlength(100); ?><!--/noindex--> </div> </div> <?php } } ?> </div> <?php } ?>
4) По желанию в строке вместо 100 указать свою длину анонса. Помните, что реальная длина будет в 2 раза меньше. То есть, если вы указали 100, длина анонса будет составлять 50 символов.
Метки: внутренняя оптимизация, программирование, трафик