Как сделать блок похожие записи на wordpress без плагинов
Отборные материалы о дизайне, seo, wordpress

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

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

Вариантов у нас только 2 – или делать вывод на основе рубрик, или же на основе меток.

Первый лучше походит, если вы редко пользуетесь метками или они у вас настолько разные, что почти не пересекаются

1. Вывод похожих записей при помощи меток

<h3>Похожие статьи:</h3>
<div class="sample-posts">
<ul>
<?php
    //for use in the loop, list 5 post titles related to first tag on current post
    $tags = wp_get_post_tags($post->ID);
    if ($tags) {
    $first_tag = $tags[0]->term_id;
    $args=array(
    'tag__in' => array($first_tag),
    'post__not_in' => array($post->ID),
    'showposts'=>5,
    'caller_get_posts'=>1
    );
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
    while ($my_query->have_posts()) : $my_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>

    <?php
    endwhile;
    }
    wp_reset_query();
    }
    ?>
</ul>
</div>

Весь этот код нужно вставить в файл single.php (ну или куда вы там хотите его вставить).

’showposts’=>5 – это кол-во выводимых статей. В сам код я уже вставил нужные классы для форматирования. Теперь вы, к примеру, можете вставить в файл стилей что-то вроде

.sample-posts ul li{
background-image:url("img/list-main.gif");
background-position:left center;
background-repeat:no-repeat;
list-style-type:none;
margin-bottom:5px;
padding-left:18px;
}

только сделайте какое-то изображение стрелочки list-main.gif

2. Вывод похожих записей при помощи рубрик

<div class="sample-posts">
<h3>Похожие статьи:</h3>
<?php
$categories = get_the_category($post->ID);
if ($categories) {
	$category_ids = array();
	foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

	$args=array(
		'category__in' => $category_ids,
		'post__not_in' => array($post->ID),
		'showposts'=>5, // Number of related posts that will be shown.
		'caller_get_posts'=>1
	);
	// Rest is the same as the previous code
$my_query = new wp_query($args);
	if( $my_query->have_posts() ) {
		echo '<ul>';
		while ($my_query->have_posts()) {
			$my_query->the_post();
		?>
			<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
		<?php
		}
		echo '</ul>';
	}
	wp_reset_query();
}
?></div>

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

Мониторинг сети:

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

 

Похожие статьи:



32 комментариев к “Похожие записи без плагина”


9643e5d7

  1. пишет:

    Супер материал! Поставли на сайт. Теперь приходиться корректно вести тэги.

  2. пишет:

    благодарю, я обычно пользовался симпле тагс, но уже в версии 2, 9он не работал и приходилось оставаться на 2.7
    Ваша статья расширяет мои возможности и сознание )

  3. пишет:

    Отдельное спасибо, хоть и новичок я в блогосфере, но с вашей помощью узнаю всё больше и больше!

  4. пишет:

    Спасибо, давно хотел сделать, а тут смотрю, забыл, вот сейчас -1 плагин, что приятно.

    Хотя я вообще не менял в стилях ничего только размер увеличил текста.

  5. пишет:

    Спасибо за код) Но он работает не так как хотелось бы( Точнее не совсем так) По крайней мере второй… первый не проверял…

    В общем он не исключает данную статью (в которой выводятся) из списка похожих записей… что изменить чтобы это исправить?)

    P.S. Ошибочка в начале статьи: “теперь настал череД дать вам код” :)

  6. пишет:

    Спасибо админ за пост, как раз то что нужно. Скажи пожалуйста, а как сделать такой вывод кода в материале?

  7. пишет:

    Рано обрадовался я что то :-) . Глюки у меня чуток.
    Админ подскажи пожалуйста, почему может выводится в похожих записях ссылка на ту же самую запись, которая открыта??? Не пойму что за глюк такой.
    Вывод похожих записей делаю через рубрики.
    Спасибо.

    • ETNO пишет:

      по идее, не должно быть, в коде прописано не дублировать, попробуйте может другие способы

      • пишет:

        пробовал еще один вариант, кстати, тоже самое, вернее там вообще глюки полным ходом были, в похожих статьях 5 ссылок на открытую статью :-) . Отбор шел тоже по рубрикам. По тегам правда не пробовал. Просто не приходится использовать одинаковые теги…
        Во делема. Интересно конечно.
        Ну, вам во всяком случае спасибо.
        Будем думать.

  8. пишет:

    Кстати, почитал комменты, у Ripper та же проблема, что и у меня.

  9. пишет:

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

  10. пишет:

    ETNO, скажи пожалуйста, а как сделать такой вывод кода в материале?
    Спасибо.

    • ETNO пишет:

      syntax highlighter – только на этом блоге я сильно менял внешний вид для этого плагина, так что точно такой же не выйдет (хотя всегда можно глянуть у меня в исходном коде и скомуниздить :-)

  11. пишет:

    Спасибо, взял на вооружение. Без плагинов то оно лучше :) Вопрос только, как сделать чтоб не только заголовок выводился, а еще и пару строчек из статьи?

  12. Виталик пишет:

    Прекрасно работает, но не для сетевой версии WPMU. Статьи ищутся только в конкретном блоге. Скажите, пожалуйста, можно ли сделать так чтоб искались похожие статьи во всех блогах.

  13. пишет:

    Спасибо за код. Подскажи, можно как-то сделать чтобы код анализировал тайтл постов, или это уже плагин надо ставить?

    И еще, можно чтоб выводился кусок текста из поста?

    • ETNO пишет:

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

  14. пишет:

    А как сделать чтоб с картинками выводилось?

  15. пишет:

    Подскажи, а как реализовать эту же задачу, но с условием что поиск не по рубрикам и тегам, а по произвольным полям?
    Спасиба заранее.

    • ETNO пишет:

      ранее не сталкивался с этим, но знаю, что есть плагин – может он поможет, там в описании есть такая функция

  16. Роман пишет:

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

  17. пишет:

    А как без тегов и без категорий вывести похожие посты , по какому признаку ?
    у меня вот есть сайт на wp там порядка 13000 записей теги замучаешься прописывать, и категория всего одна, но есть разделение в виде поалфавитного вывода и у каждого поста есть свои post_meta но в них нет не обного поля которое бы можно было использовать как UID

    ps: сайт-катологизатор

    • ETNO пишет:

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

  18. пишет:

    Спасибо большое. Ранее пользовалась плагином SimpleTags. Но после обновления версии Wordpress до 3.1.2 перестали корректно выводиться статьи по рубрикам. Как выяснилось – дело в плагине. Последнее время стараюсь меньше плагинов использовать, а больше дописывать в коде. =)

  19. пишет:

    Мне нужно сделать так же, но еще и катинкой поста! Подскажите!

Смотреть все
ВНИМАНИЕ