IPB

( Zaloguj | Zarejestruj )

 
Reply to this topicStart new topic
> Kilka loop na stronie i powtarzające się posty
kazur
post 04.11.2011 - 15:11
Post #1


aktywność:
*

Grupa: +Bloger
Postów: 33

Nr: 54



Witam serdecznie Specjalistów WordPressowych,

Mam taki problem.

Na stronie główniej serwisu postawionego na WP mam kilka (kilkanaście) pętli, wyświetlających najnowsze posty z różnych kategorii, lub po prostu najnowszych.

Np. Wiadomości (tutaj najnowsze), Wiadomości z kategorii samochody (tutaj najnowsze posty w kategorii samochody) itd.

Pytanie jest następujące: Jak zrobić, aby posty wyświetlane na stronie się nie powtarzały?
Tzn. Jesli coś już się wyświetli w jednej z kategorii - nie może wyświetlić się w kolejnej.

Będę wdzięczny za Waszą pomoc!
Go to the top of the page
 
+Quote Post
kejsi
post 05.11.2011 - 01:14
Post #2


aktywność:
*****

Grupa: +Bloger
Postów: 892

Nr: 3 286



http://www.wprecipes.com/how-to-use-two-or...duplicate-posts
Go to the top of the page
 
+Quote Post
kazur
post 09.11.2011 - 16:20
Post #3


aktywność:
*

Grupa: +Bloger
Postów: 33

Nr: 54



Okej, działa przy 2 pętlach, ale przy większej ilości już nie.

Do pierwszej pierwsza pętla:
<h2>Loop n°1</h2>
<?php
$ids = array();
while (have_posts()) : the_post();
the_title();
?>
<br />

<?php $ids[]= $post->ID;
endwhile; ?>


Druga pętla:
<h2>Loop n°2</h2>
<?php
query_posts("showposts=50");
while (have_posts()) : the_post();
if (!in_array($post->ID, $ids)) {
  the_title();?>
  <br />
<?php }
endwhile; ?>


I w trzeciej co? To samo co w tej drugiej? Wytedy pętla nr.3 nie ma duplikatów z pętli numer 1, ale już z tej nr. 2 ma.
Chodzi mi o to, aby w żadnej z pętli nie było duplikatów - jak post już jest wyświetlony w jednej z pętli na stronie głównej to nie może być wyświetlony ponownie w kolejnych.

Liczę na Waszą pomoc!
Go to the top of the page
 
+Quote Post
kkarpieszuk
post 15.11.2011 - 21:19
Post #4


aktywność:
****

Grupa: +Bloger
Postów: 376

Nr: 5 123



zmodyfikuj drugą by nie tylko omijała juz wystepujace ID ale i dopisywala nowe z tej petli:

<h2>Loop n°2</h2>
<?php
query_posts("showposts=50");
while (have_posts()) : the_post();
if (!in_array($post->ID, $ids)) {
  the_title();?>
  <br />
<?php
$ids[]= $post->ID; }
endwhile; ?>


wlasciwie to powyższą pętlą możesz zastąpić wszystkie, włącznie z pierwszą


--------------------
pozdrawiam, Konrad Karpieszuk
## WTYCZKA WORDPRESS - SKLEP INTERNETOWY ##
p.s. zleceń odnośnie Wordpressa szukajcie na http://wpzlecenia.pl
Go to the top of the page
 
+Quote Post
WPNinja
post 16.11.2011 - 10:28
Post #5


aktywność:
****

Grupa: +Bloger
Postów: 459

Nr: 3 567



Jedynym dobrym sposobem na wykluczenie wpisów jest skorzystanie z parametru 'post__not_in':
http://codex.wordpress.org/Class_Reference/WP_Query

I nie 'showposts' a 'posts_per_page'.


--------------------
WPNinja - WordPress to moje Kung-Fu
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



: 22 05 12 - 11:02