• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wyświetlić wszystkie posty z jednej kategorii po 3 w każdym divie ? Wordpress

Object Storage Arubacloud
+1 głos
658 wizyt
pytanie zadane 12 czerwca 2015 w PHP przez RobsonWD Nowicjusz (220 p.)

Cześć wszystkim.

Tworzę prostą stronę na cms wordpress. Zrobiłem sobie slider bootstrap, w którym są 3 boxy(div.item)
Zrobiłem 6 wpisów w 1 kategorii i chciałbym je teraz wyświetlić w pętli po 3 posty co 1 div.item. 
I tutaj jestem w kropce, bo nie mam pomysłu jak to rozwiązać elastycznie, tzn jak będzie więcej wpisów niż 6 np 9 to automatycznie dodany będzie jeszcze jeden div.item z kolejnymi 3 wpisami itd.

Póki co mój kod wygląda tak 

<div class="item active">
  <div class="row text-center">
     <?php $inner_query = new WP_Query( array(
      'post_type' =>'post',
      'posts_per_page' => 3,
      'category_name' => 'team'
     ) ); ?>
            <?php if ( $inner_query->have_posts() ) : while ( $inner_query->have_posts() ) : $inner_query->the_post(); ?>
                                <a href="<?php the_permalink(); ?>">
                                    <div class="col-sm-4">
                                        <div class="thumbnail">
                                            <?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>
                                            <div class="caption">
                                                <h5><?php the_title(); ?></h5>
                                                <p><?php echo the_field('profession'); ?></p>
                                            </div>
                                        </div>
                                    </div>
                                </a>
            <?php endwhile; else: endif; wp_reset_postdata(); ?>
  </div>
</div>

<div class="item">
  <div class="row text-center">
    <?php $inner_query = new WP_Query( array(
      'post_type' =>'post',
      'posts_per_page' => 3,
      'category_name' => 'team',
      'offset' => 3
     ) ); ?>
            <?php if ( $inner_query->have_posts() ) : while ( $inner_query->have_posts() ) : $inner_query->the_post(); ?>
                                <a href="<?php the_permalink(); ?>">
                                    <div class="col-sm-4">
                                        <div class="thumbnail">
                                            <?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>
                                            <div class="caption">
                                                <h5><?php the_title(); ?></h5>
                                                <p><?php echo the_field('profession'); ?></p>
                                            </div>
                                        </div>
                                    </div>
                                </a>
             <?php endwhile; else: endif; wp_reset_postdata(); ?>
  </div>
</div>


Jednak tutaj mam te posty ustawione ręcznie, więc jak dodam więcej wpisów, nie będą wyświetlone, jak dam większą ilość w atrybucie posts per page, to wtedy pętla wypluje te posty w danym divie.

Czy ktoś ma jakiś pomysł jak uelastycznić ten problem ? 

Z góy dzięki za odpowiedzi.

1 odpowiedź

0 głosów
odpowiedź 5 sierpnia 2015 przez roque Bywalec (2,160 p.)
<div class="item active">
  <div class="row text-center">
    <?php $inner_query = new WP_Query( array(
      'post_type' =>'post',
      'posts_per_page' => 999,
      'category_name' => 'team',
      'offset' => 0
     ) ); ?>

	    <?php $i=1; $count = $inner_query->found_posts; ?>

            <?php if ( $inner_query->have_posts() ) : while ( $inner_query->have_posts() ) : $inner_query->the_post(); ?>
                <a href="<?php the_permalink(); ?>">
                    <div class="col-sm-4">
                        <div class="thumbnail">
                            <?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>
                            <div class="caption">
                                <h5><?php the_title(); ?></h5>
                                <p><?php echo the_field('profession'); ?></p>
                            </div>
                        </div>
                    </div>
                </a>

		<?php 
		if($i == $count)
		{
			echo '</div>';
		}
		else if($i % 3 == 0)
		{
			echo '</div><div class="row text-center">';
		}
		 ?>

		<?php $i++; ?>
             <?php endwhile; else: endif; wp_reset_postdata(); ?>
</div>

Spróbuj coś takiego, nie testowałem, napisalem na szybko bez testowania na żywo na WP, ale powinno dzialać, jeśli miałbyś jakiś problem to sprawdz jaki leci błąd i poprawisz i zobacz konwencje rozwiazania tego problemu w linii "if($i == $count)" i niżej

Podobne pytania

0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 21 października 2019 w Inne języki przez fipooo Bywalec (2,880 p.)
0 głosów
1 odpowiedź 253 wizyt
pytanie zadane 30 grudnia 2017 w PHP przez Adrian1999 Nałogowiec (34,570 p.)
0 głosów
1 odpowiedź 842 wizyt
pytanie zadane 19 lipca 2017 w PHP przez Kuba Kubas Początkujący (300 p.)

92,547 zapytań

141,387 odpowiedzi

319,504 komentarzy

61,931 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...