Witam.
Być może istnieje jakieś bardziej eleganckie rozwiązanie, ja wyprodukowałem takie:
1. Na stronie z postami, na której chcemy się pozbyć ostatniego wpisu, przed pętlą główna zaczynającą się od if ( have_posts() )
używamy takiego kodu:
$tymczasowe_query=$wp_query;
$ostatni_post=wp_get_recent_posts('1');
$ostatni_post_ID= $ostatni_post['0']['ID'];
$wp_query=$tymczasowe_query;
query_posts(array('post__not_in'=>array($ostatni_post_ID)));
Powinno zadziałać to tak jak na stronie głównej mojego poligonu – brak tam dzisiejszego wpisu 'Całkiem nowy wpis’.
2. Na stronie na której chcemy mieć tylko jeden ostatni wpis, przed pętlą wyświetlającą posty, użyjemy takiego kodu:
query_posts( 'posts_per_page=1' );
Jeżeli chcemy ten pojedynczy wpis opublikować na stronie statycznej a nie blogu z postami, np. tak jak u mnie na stronie poligonu o nazwie ’strona z 1 wpisem’, stosujemy taki kod:
$tymczasowe_query=$wp_query;
query_posts( 'posts_per_page=1' ); while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() ); endwhile;
$wp_query=$tymczasowe_query;
w miejscu gdzie chcemy mieć nasz wpis – u mnie znajduje się on pod treścią strony.
Oczywiście w przypadku stosowania tej metody w szablonach kategorii, lub stosowania wtyczek, ewentualnie innych kolejności, należy dostosować do już istniejących opcje wywołania query_posts(...tu opcje...)
w obu przypadkach.
Pozdrawiam
Witam, dziękuje serdecznie! Twój sposób działa idealnie, napotkałem jednak problem podczas używania wtyczki WP-Navi, czy mógłbyś (lub ktoś inny) pomóc mi z pogodzeniem ze sobą metody tu opisanej przy użyciu tejże wtyczki?
Witam.
Zapewne problem wynika z tego, iż w podanej przeze mnie metodzie nie uwzględniłem parametrów wtyczki WP-Navi.
Jak rozumiem dotyczy to stron, na których pomijasz pierwszy post.
Aby dodać odpowiedni parametr wtyczki WP-Navi należy dodać do parametrów zapytania parametr 'paged’, np. tak:
$tymczasowe_query=$wp_query;
$ostatni_post=wp_get_recent_posts('1');
$ostatni_post_ID= $ostatni_post['0']['ID'];
$wp_query=$tymczasowe_query;
query_posts(array('post__not_in'=>array($ostatni_post_ID), 'paged'=>$paged));
Mam nadzieję, że to pomoże.
W razie czego znalazłem jeszcze inną metodę, lecz musiałbym ją najpierw przetestować i gdyby obecna nie zadziałała, moglibyśmy zastanowić się nad tą nową.
Jakby co to pisz.
Pozdrawiam
Dziękuje raz jeszcze, działa elegancko 🙂