Запиливаем похожие новости без плагинов и смс

Плюсануть
Поделиться
Класснуть

За утро over9000 раз проклянул ябучих школолосеошнеков за засранную ими выдачу по запросу "похожие новости WordPress". Копипиздят друг у друга один и тот же скрипт за своим авторством, блять. Не мог найти нужный скрипт, но всё таки осилил! И, собственно, делюсь с вами.

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

Лепил из двух скриптов, так как в сети два варианта:

  1. Похожие новости с вычислением похожести по тегам
  2. И с вычислением похожести по категориям

Делать по категориям - уныло, повторы новостей идут. А по тегам не везде сработает, ибо не у всех новостей они есть (а заглушка "упс, нет похожих новостей" - пиздёж и провокация). Вот и сделал, что бы отображались похожие статьи, определяемые по тегам, а если нет тегов - по категории. Не слишком хороший вариант, но лучше, чем совсем ничего, либо тупо заглушка.

Собственно сам код:

<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {	$tag_ids = array();	foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;	$args=array(	'tag__in' => $tag_ids,	'post__not_in' => array($post->ID),	'showposts'=>5,	'orderby' => 'rand'	);	$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	endwhile;	}	echo '</ul>';	wp_reset_query();
}
// категории	else{	$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,	'caller_get_posts'=>1	);	$my_query = new wp_query($args);	if( $my_query->have_posts() ) {	echo '<ul style="margin:0 10px 5px 20px;">';	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();	}	}
?>

Вставляем данный код в файл single.php и радуемся. Пытался запилить код в functions.php и вызывать срипт в single.php с помощью такого кода:

<?php seogovno(); ?>

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

И да, вот как выглядит это на Убунтоводе:

Запиливаем похожие новости без плагинов

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

А вы как делаете похожие новости? Ставите плагины, которые делают то же самое, что выше, но в довесок поёбывают в жопу сервер, на котором ваш сайт или юзаете какой то более хитрый (куда уж хитрее то?) скриптец? Делитесь!

А прокат звука здесь, на сайте sabram.ru.

Последнее изменение записи: 28.12.2015 | Рубрика: Работа | Метки: ,
Плюсануть
Поделиться
Класснуть