WordPress похожие записи без плагина


wordpress похожие записиОдин из вариантов как можно вывести в WordPress похожие записи без плагина. Вывод похожих записей осуществляется по меткам.

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

Как я упомянул выше, похожие записи будут выводиться по меткам. По мне так выводить в WordPress похожие записи по меткам очень удобно. Я назначаю к похожим по тематике публикациям одну общую метку. При этом сами публикации могут находиться в совершенно разных рубриках.

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

Этот код не использует скриптов, по сути это стандартные функции WordPress.

Итак, чтобы вывести в WordPress похожие записи без плагина нужно создать шорткод, в вашем случае просто скопировать и вставить в файл functions.php этот небольшой код:

 /* схожие записи шорткод */
/* ------------------------------------- */
function related_posts_shortcode( $atts ) {
extract(shortcode_atts(array(
'limit' => '5',
), $atts));
 
global $wpdb, $post, $table_prefix;
 
if ($post->ID) {
$retval = '<ul>';
// Get tags
$tags = wp_get_post_tags($post->ID);
$tagsarray = array();
foreach ($tags as $tag) {
$tagsarray[] = $tag->term_id;
}
$tagslist = implode(',', $tagsarray);
 
// Do the query
$q = "SELECT p.*, count(tr.object_id) as count
FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
AND p.post_status = 'publish'
AND p.post_date_gmt < NOW()
GROUP BY tr.object_id
ORDER BY count DESC, p.post_date_gmt DESC
LIMIT $limit;";
 
$related = $wpdb->get_results($q);
if ( $related ) {
foreach($related as $r) {
$retval .= '<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
}
} else {
$retval .= '
<li>No related posts found</li>';
}
$retval .= '</ul>';
return $retval;
}
return;
}
add_shortcode('related_posts', 'related_posts_shortcode');

Здесь следует обратить внимание на 'limit' => '5', — это значит, что будет осуществлен вывод 5-ти похожих записей. Меняйте цифру '5' на нужную.

Все, теперь, если вы добавите в окончание поста шорткод

схожие записи без плагина

Это картинка. Шорткод выводит здесь записи :)

должен отобразиться обычный список схожих записей. Естественно, к публикации нужно не забывать ставить метку, выбрать из часто используемых меток. Если добавить к записи новую метку, и шорткод «WordPress похожие записи», то конечно-же подобных записей не будет, пока не будет определена эта-же метка к другой записи. Шорткод сформирован, теперь стили оформления. Я дам свои стили, чтобы не выдумывать. Вот мой код CSS вывода похожих записей, который нужно добавить в файл style.css :

.rel_psts /* весь блок */ {
background: url("/wordpress-poxozhie-zapisi-bez-plagina/images/jeans_white.png") repeat scroll 0 0 rgba(0, 0, 0, 0);
border: 2px solid #ffffff;
padding: 15px 0 0 30px;
box-shadow: 0px 2px 9px -2px #000000;
font-weight: bold;
margin-bottom: 30px;
margin-top: 30px;
}
.rel_psts ul li{
list-style: none;
}

background: url("/wordpress-poxozhie-zapisi-bez-plagina/images/jeans_white.png") repeat scroll 0 0 rgba(0, 0, 0, 0); — ставьте свою картинку в качестве фона.

Правда у вас не отразиться такой элемент оформления перед каждой похожей записью. Это используются иконки Font Awesome, о которых можно прочитать здесь.

Что-бы шорткод отображался ,со своими, назначенными стилями, в окончание записи в итоге нужно добавлять такой код:

<div class="rel_psts">Схожие по тематике записи : код шорткода</div>

Схожие записи выводятся, но их неудобно ставить к каждой публикации вручную? Что-бы вывод похожих записей производился автоматически в каждой публикации, нужно открыть файл single.php и после строки

<?php the_content(); ?>

один раз поставить

<?php echo do_shortcode('<div class="rel_psts">Схожие по тематике записи : код шорткода
</div>'); ?>

Если в файле single.php такой строчки нет, то стоит поискать ее в файле типа loop-single.php

Немного подробнее о том, как вставить шорткод в любое место шаблона написано в статье «Добавляем шорткод в любое место шаблона WordPress»

— На этом все, если возникнут затруднения с выводом пожожих записей по меткам, пишите.


Похожие по Тегам статьи