@jenya7771

Как изменить алгоритм вывода новостей WP?

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

Код который выводит по тегам(исходный)
<?php
/*
Template Name Posts: tovar
*/
?>
 <?php get_header();?>
 <?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
<div class=br_triangle> </div>
<div class="main-heading">
    <h1><?php the_title(); ?>
		<br>
		<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&amp;layout=standard&amp;show_faces=false&amp;
		width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:60px;">
		</iframe></h1>
</div>
<section>
    <?php while (have_posts()): the_post();?>
        <div class="slider_tovar"><?php the_content();?></div>
        <div class="body_tovar">
		<div id=share_line><span>SHARE</span><?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("share_line") ) : ?>
			<?php endif; ?> 
		<!-- </div> *он стоит, но не здесь (для <div id=share_line>)-->.
		<div class=post_tags><?php the_tags(' ',',',' '); ?></div>
		<br>
		<div class=project_title> Описание проекта</div>
		<?php the_content();?>
		<div class="fb-comments" data-href="<?php the_permalink(); ?>" data-numposts="5" data-colorscheme="light"></div>
		</div>
	<?php endwhile; ?>
	<div class="body_sidebar">	
	<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("tovar_menu") ) : ?>
			<?php endif; ?> 
			</div></div>
			
		<div id=slider_funk> 
		<div id="owl-demo5" class="owl-carousel">
				<?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, // Сортировка происходит по тегам (меткам) 
				'orderby'=>rand, // Условие сортировки рандом
				'post__not_in' => array($post->ID),
				'showposts'=>16, //Количество выводимых записей
				'caller_get_posts'=>1); // Запрещаем повторение ссылок
				$my_query = new wp_query($args);
				if( $my_query->have_posts() ) {
					while ($my_query->have_posts()) {
				$my_query->the_post();
        ?>
           <div class="item"><a href="<?php the_permalink();?>" >
		   <span class="owl-title"><p><?php the_title(); ?></p></span>
		   <?php the_post_thumbnail(array(270,270),'thumb'); ?></a></div>
        <?php
        }
    }
}
?>
		</div>
		<div id="slider5"></div>
		<div style="margin-bottom: 3em;">
			<h4 style="margin: -0.875em 0 0;">Похожие продукты</h4>
		</div>
		</div>	
			
			
</section>

<?php get_footer(); ?>

Функция которая отвечает за выборку товаров после попыток изменить под вывод по категориям
<?php $cat = wp_get_post_tags($post->ID);
				if ($cat) {
				$cat_ids = array();
				foreach($cat as $individual_tag) $cat_ids[] = $individual_tag->term_id;
				$args=array(
				'tag__in' => $cat_ids, // Сортировка происходит по тегам (меткам) 
				'orderby'=>rand, // Условие сортировки рандом
				'post__not_in' => array($post->ID),
				'showposts'=>16, //Количество выводимых записей
				'caller_get_posts'=>1); // Запрещаем повторение ссылок
				$my_query = new wp_query($args);
				if( $my_query->have_posts() ) {
					while ($my_query->have_posts()) {
				$my_query->the_post();
        ?>

а когда вместо tag__in ставил category__in вообще этот блок пропадал! Вот документация которую я читал.
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Предполагаю, что wp_get_post_tags нужно заменить на get_the_category, а tag__in на category__in.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы