Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: zaawansowane wyświetlanie newsów/postów

Witam, mam problem z wyświetleniem postów.

Na stronie jest slider który wyświetla 5 najnowszych postów z różnych kategorii. Pod sliderem chciałbym wyświetlić posty które nie są w sliderze (tutaj uwaga: muszę pobrać ID postów ze slidera i wykluczyć je w pętli pod sliderem.) Następnie chciałbym pobrane posty podzielić na 2 kategorie: 3 posty muszą mieć thumbnail, tytul i excerpt a pozostałe 5 tylko sam tytuł. Dodatkowo każda forma wyświetlenia ma inny styl (slider ma swój styl, 3 posty z thumbnailsami też mają swój inny styl i są w innym divie lub ul, i 5 postów z samym tytułem też jest w innym div`ie lub ul).

Mam nadzieję że się w miarę jasno wyraziłem.

Jeśli ktos może mi pomóc bede wdzięczny.
Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: zaawansowane wyświetlanie newsów/postów

Napisałem to tak:


<?php
// The Query
query_posts( 'cat=kategoria_slidera&posts_per_page=5');
// The array
$stack = array();

// The Loop
while ( have_posts() ) : the_post();
array_push($stack, $post->ID);
endwhile;

// Zmienna z tablicy
$ecld= $stack[0].','.$stack[1].','.$stack[2].','.$stack[3].','.$stack[4]
?>

<ul>
<?php
global $post;
$stack2 = array();
$myposts = get_posts( 'numberposts=3&category=kategoria_newsa&exclude='.$ecld );

foreach( $myposts as $post ) : setup_postdata($post);

array_push($stack2, $post->ID);
?>
<li>[NEWS Z MINIATURKĄ]<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach;
$ecld2= ','.$stack2[0].','.$stack2[1].','.$stack2[2].','.$stack2[3].','.$stack2[4]
?>
</ul>
<br><br>

<ul>
<?php
global $post;
$myposts = get_posts( 'numberposts=5&category=kategoria_newsaexclude='.$ecld.$ecld2 );

foreach( $myposts as $post ) : setup_postdata($post); ?>
<li>[SAME TYTULY]<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>



działa dobrze, ale zastanawiam się czy nie dało by się prościej.

Temat: zaawansowane wyświetlanie newsów/postów

Do slidera możesz użyć custom filds albo sticky post będzie prościej dodawać posty do slajdera niż poprzez kategorię. Zamiast 2 pętli do postów zrób jedną tylko dodaj
$i=0;
if (have_posts()) : while (have_posts()) : the_post(); $i++
if $i<3 {
} else { }Tomasz Mazur edytował(a) ten post dnia 07.03.12 o godzinie 16:37
Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: zaawansowane wyświetlanie newsów/postów

Slider zainstalowałem jako wtyczke. Chce jak najbardziej uproscić dodawanie postów. Działa on tak że podczas uploadu zdjecie automatycznie zaczytuje mi sie do slidera, a kategorią oznaczam czy ma byc w sliderze czy nie (a tak czy inaczej musze przyporzadkowac posta kategorii - takie założenie).

Dzięki za kod, zawsze to klika linijek mniej ;)

Temat: zaawansowane wyświetlanie newsów/postów

Maciej Szczepański:
(...), a kategorią oznaczam czy ma byc w sliderze czy nie (a tak czy inaczej musze przyporzadkowac posta kategorii - takie założenie).

Zamiast kategorii lepiej wykorzystać do tego własne pola (custom fields).
Ideałem by było wrzucić własny meta box z czekboksem (ma być w sliderze czy nie).

Ewentualnie własna taksonomia.

Zawsze jest to czytelniejsze dla użytkownika niż wyszukiwać w kategoriach, tej jednej właściwej.



Wyślij zaproszenie do