Привет, друзья-товарищи. Вчера разместил на этом блоге и на других своих сайтах блок «похожие записи из рубрики», который можете наблюдать внизу после статьи. Видите как круто выглядит? С миниатюрами, да еще и с анонсом из статьи. Просто великолепно!. Так вот, этот блок с похожими записями выводится без плагина, с помощью кода. Сейчас я вам этот код дам, но объяснить как он работает не смогу, потому что и сам не знаю. Знаю только то что он выводит предыдущие записи из рубрики. Это своего рода круговая перелинковка по рубрикам — ровное распределение веса и все дела, плюс поведенческие факторы: просмотры страниц, время нахождения на сайте, в общем и целом, ваш сайт по идеи должен ранжироваться выше и получать трафика больше. В идеале.
Откровенно говоря, я бы не стал писать этот пост, в кодах я ни бум-бум, да к тому же сейчас так много-много-много дел с другими сайтами, плотная работа с несколькими клиентами, да и домашних забот прибавилось, лето ведь, а в частном доме за лето нужно успеть многое, но как бы то ни было, я выделил время для того, чтобы вам помочь! Тем более, за вчерашний вечер и сегодняшнее раннее утро трое вебмастеров-манимейкеров поинтересовались как я сделал этот шикарный блок — я не мог оставить ваши вопросы без ответа. Но чтобы не отвечать по много раз, решил просто взять и отдать вам код. Я бы и ссылку на источник дал, но ссылки, к моей печали нету. Вчера разгребал завалы в своем Еверноуте, и наткнулся на эти коды. Откуда я их нашел, хоть пытай, не помню.
Итак…
Вот код для вывода похожих записей из рубрики, который нужно разместить после статьи, т.е. в файле single.php
<?php function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) { function new_excerpt_length($length) { return 25; } add_filter('excerpt_length', 'new_excerpt_length'); $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="related1"> <ul class="recent"> <h4>Предыдущие статьи по теме:</h4> <?php foreach ($result as $post) { setup_postdata($post); ?> <li><a href="<?php the_permalink() ?>" class="recent-link" rel="bookmark"><?php the_post_thumbnail(array(90,90)); ?><?php the_title(); ?></a> <? the_excerpt(); ?></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() ?>" class="recent-link" rel="bookmark"><?php the_post_thumbnail(array(90,90)); ?><?php the_title(); ?></a> <? the_excerpt(); ?></li> </li> <?php } } ?> </ul> </div> <?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(); ?
— Размер миниатюр задает вот эта функция:
<!--?php the_post_thumbnail(array(90,90)); ?-->
где цифры, соответственно размер, который, можно поменять.
Внимание! У вас к каждой статье должна быть задана миниатюра.
— За количество выводимых записей отвечает, наверно, вот этот код:
show_previous_posts_from_category($post->ID, $the_cat_id, 5);
Где цифра 5 и есть кол-во.
Теперь нужно задать стили этому блоку.
Код, который нужно вставить в файл style.css (стили оформления)
.related1 img{margin: 0 5px 0 0; float:left; padding:3px; border:1px solid #ccc;} .related1 ul li{margin:0; list-style-type: none; background-image:none; padding:15px 0 0; border-bottom:1px solid;} a.recent-link {font-weight:bold; font-size:15px; line-height:14px; color:#009EDC;} .related1 h4 {color: #FF3333; padding: 5px; margin-bottom:-1px;}
Если вы в css полные чайники, то вот вам статья
Ничего сложного. Когда разместите эти коды, можете наблюдать на своем сайте блок похожих записей с миниатюрами, который линкует ваши статьи и распределяет вес по страницам правильно. Наверно. Ну а плагины можете смело деактивировать и удалять.
У меня именно так все и сделано.
Кому нравиться плагины WordPress, то статья по теме: 10 плагинов для внутренней перелинковки
Я понимаю, что многие не умеют вставлять коды, обращайтесь, наши профессионалы вам помогут (почта: aimblogru@gmail.com)
Если вам нужен качественный хостинг в Украине, то компания «Провеб» идеальный для вас вариант. Имейте это в виду.
Удачи!
Отличная статья. Перелинковка сейчас важна как никогда, особенно такая тематическая по категориям.
Ну да. Хотя перелинковка важна была всегда)
Этот код активирует лишь категории, а можно чтобы и метки также были учтены?
Денис, я не знаю. Я ведь написал, что не понимаю как работают код.
Данный код именно для рубрик, чтобы циклично линковать.
Видимо вы не совсем понимаете, но статьи по меткам циклично аналогичным образом залинковать невозможно. Для этого необходимо использовать код именно для меток, где он будет рандомом брать статью и проставлять в статье: либо один раз проставит записи похожие, либо каждый раз новые будут.
Валера, я смотрю, ты убрал похоже записи, что внизу выводились блоком картинок? Наверное и я себе так попробую сделать, если только не запутаюсь в кодах? Скажи, пожалуйста, а как сначала вывод блока картинок после статей убрать, чтобы потом уже другие коды разместить?
Нет, просто в настройках отключи. После кода
< ?php the_content(); ?>
можешь пробовать вставлятьЗдорово! Интересно, все темы принимают этот код? А то моя чудит иной раз. Большое спасибо, буду пробовать!
Валера, а в style.css в какое место код вставляется?
Евгения, можно вообще в любое. Вставьте в самом конце.
А у меня почему то и так выводятся по рубрикам. Похожие записи без плагина сразу было прописано в теме у меня. Но правда без анонса. Нужно будет поэкспериментировать. Так намного интереснее и заманчивее смотрится.
Блин, у меня не работает код, а жаль