Так что я использую WordPress и собственную тему. На целевой странице я хочу отображать сообщения по категориям.
Пример: supose У меня есть три категории кошек, собак, ослов. тогда на моей целевой странице у меня будет что-то вроде:
- Последние 10 кошек
- Последние 10 собак
- Последние 10 ослов
Чтобы сделать это, я закончил три цикла (а может и больше с большим количеством категорий), поэтому я написал примерно так:
<?php $posts = query_posts( array ( 'category_name' => 'cats', 'order' => 'ASC', 'posts_per_page' => 10 ) );?>
<h1>my cats</h1>
<?php
foreach ($posts as $post) :
if ($post):
?>
<!-- displaying info not so important -->
<div class="some_wrapper">
<a href="<?php the_permalink();?>">
<img <?php $turl = get_the_post_thumbnail_url(); echo ($turl !== false) ? 'src="' . $turl . '"' : 'src="https://i.picsum.photos/id/10/800/600.jpg"'; ?> alt=""/>
<span><?php echo get_the_title(); ?></span></a>
</div>
<?php endif;endforeach; ?>
<?php $posts = query_posts( array ( 'category_name' => 'dogs', 'order' => 'ASC', 'posts_per_page' => 10 ) );?>
<h1>my dogs</h1>
<?php
foreach ($posts as $post) :
if ($post):
?>
<!-- displaying info not so important -->
<div class="some_wrapper">
<a href="<?php the_permalink();?>">
<img <?php $turl = get_the_post_thumbnail_url(); echo ($turl !== false) ? 'src="' . $turl . '"' : 'src="https://i.picsum.photos/id/10/800/600.jpg"'; ?> alt=""/>
<span><?php echo get_the_title(); ?></span></a>
</div>
<?php endif;endforeach; ?>
<?php $posts = query_posts( array ( 'category_name' => 'donkeys', 'order' => 'ASC', 'posts_per_page' => 10 ) );?>
<h1>my donkeys</h1>
<?php
foreach ($posts as $post) :
if ($post):
?>
<!-- displaying info not so important -->
<div class="some_wrapper">
<a href="<?php the_permalink();?>">
<img <?php $turl = get_the_post_thumbnail_url(); echo ($turl !== false) ? 'src="' . $turl . '"' : 'src="https://i.picsum.photos/id/10/800/600.jpg"'; ?> alt=""/>
<span><?php echo get_the_title(); ?></span></a>
</div>
<?php endif;endforeach; ?>
Все работает, но Могу ли я сделать это быстрее как, например, выполнение One L oop вместо 3 (или более, если у вас больше категорий) или использование другого способа для l oop?