Wordpress с несколькими циклами при отображении постов по категориям, могу ли я сделать это быстрее? - PullRequest
0 голосов
/ 19 февраля 2020

Так что я использую 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?

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