Отборные материалы о дизайне, 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>

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

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

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

 

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



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

  1. Knopych пишет:

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

  2. Trolll пишет:

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

  3. Coyote88 пишет:

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

  4. Никита пишет:

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

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

  5. Ripper пишет:

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

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

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

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

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

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

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

    • ETNO пишет:

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

      • Роман пишет:

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

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

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

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

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

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

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

  11. drStas пишет:

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

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

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

  13. drStas пишет:

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

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

    • ETNO пишет:

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

  14. Nick пишет:

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

  15. Олег пишет:

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

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

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

  17. saintist пишет:

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

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

    • ETNO пишет:

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

  18. Liza пишет:

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

  19. Александр пишет:

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

оставить отзыв

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