Как сделать блок похожие записи на wordpress без плагинов - Авторские материалы о продвижении вконтакте, wordpress фишках и плагинах, SMO, SEO, дизайне
Отборная информация, которая вставляет!

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

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

Вариантов у нас только 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>

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

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

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


 

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



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


9643e5d7

  1. :

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

  2. :

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

  3. :

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

  4. :

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

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

  5. :

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

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

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

  6. :

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

  7. :

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

    • ETNO:

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

      • :

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

  8. :

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

  9. :

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

  10. :

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

  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. :

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

  20. :

    Отличная статья, спасибо, сделал себе по этому образцу немного модифицированный аппендикс «Похожие записи:»

  21. :

    Спасибо! вставила все работает, ниче менять не надо!

  22. :

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

  23. :

    Спасибо. То что нужно :)

  24. Андрей:

    привет, подскажи как сделать вывод всех записей с определенной меткой?

    • ETNO:

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

  25. Сергей:

    А какой у вас стоит плагин (с выезжающей панелькой «Похожие записи»)?

    • ETNO:

      уже отвечал ранее, это не плагин, это своя функция и скрипт вшитый самостоятельно в тему сайта

      • Сергей:

        Поделиться можете?

        • ETNO:

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

        • ETNO:

          если бы кто-то взялся сделать плагин, на основе этого решения, то я бы поделился наработками

  26. Елена:

    Хочу спросить, может вы мне подскажете почему у меня вместо » похожие статьи» вопросики, вопросики, а дальше все как положено, перечисление статей?

  27. :

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

  28. :

    Спасибо, все чудесно получилось, но есть пара вопросов.
    В ответе на один из предыдущих комментов ты пишешь

    ну это нужно смотреть каким кодом выводится, обычно хватает прописать в параметрах orderby=rand, но все от кода зависит которым вывод идет

    Можно объяснить этот момент подробнее, где именно надо писать эту строчку?
    И второй вопрос, в какую директорию надо заливать изображение list-main.gif?

  29. :

    Очень даже хороший способ.

  30. Елена:

    Добрый вечер. Подскажите пожалуйста, есть статья «Слоны» внутри этой статьи ссылка на другую статью » Африканские слоны». Так вот код не выводит картинку из статьи «Африканские слоны» хотя название выводит. Помогите пожалуйста как изменить код, чтобы картинку тоже показывал. Заранее спасибо!

    • ETNO:

      этот код и не должен выводить картинку, если вам нужен вывод с картинкой, то можно восспользоваться плагином contextual related post, который я описывал также на блоге.

  31. :

    А я намучался со своим похожими статьями. Сделал без плагин а и в результате комментарии стали отображаться к другим статьям блога. Пришлось искать другое решение.

    Сейчас поставил новый код посмотрю как будет работать!

  32. admin:

    Как вы заебали копипастить!

  33. :

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

  34. Дмитрий:

    Здравствуйте, если у меня много записей по меткам, и я хочу чтобы скажем 10 выводилось на одной странице 10 на второй и так далее, можно это как -то сделать. на страницах я использую плагин WP Page Numbers. вставляю эту строчку перед . Может и здесь можно ее как-то вставить чтобы разбивалось на страницы?

    • ETNO:

      попробуйте вместо showposts поставить posts_per_page

      • Дмитрий:

        спасибо, но к сожалению эффект тотже, сколько ставлю в «posts_per_page» или же в «showposts», столько и выводит. если же эти параметры убираю полностью, то выводит 15 записей сколько установленно выводить в «чтении» в админке, а остальные исчезают без появившейся пагинации. Код плагина вставляю после endwhile; как и на других страницах, но там срабатывает. Почитал пишут про $query_string и параметр paged, но как сделать не понимаю.

        • ETNO:

          попробуйте вначале вот так вставить

          $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;

          и в параметрах после posts_per_page добавить

          'paged' => $paged