it-swarm.dev

Jak získat seznam příspěvků na jiné stránce než na titulní stránce?

Pro tisíce používající WP jako CMS je typický přístup k použití volby „Statické stránky“ z Nastavení> Čtení admin stránky.

Jsem však v jiném scénáři: naše titulní stránka zobrazuje statický obsah ( home.php šablony disků, které), a máme sekundární statický (nazývá se Zprávy ), které by měly zobrazovat seznam nejaktuálnějších příspěvků (co obvykle najdete na úvodní stránce průměrného blogu).

Nastavil jsem stránku Zprávy, abych použil vlastní šablonu ( page-NewsIndex.php ); na základě šablony archive.php společnosti TwentyTen tento soubor zobrazuje záhlaví, zavolá rewind_posts () a pak zavolá get_template_part ('loop', 'newsindex'), takže skončíme v loop.php (nebo loop-newsindex.php, pokud existuje). Peachy.

Loop.php má vaši typickou strukturu smyčky (opět na základě šablony loop.php TwentyTen - vylepšeno tak, aby se zjednodušilo, protože nepotřebujeme 3 typy smyček ):

<?php while ( have_posts() ) : the_post(); ?>

Když však přistoupíme na stránku, zdá se, že tato smyčka používá aktuální adresu URL k určení příspěvků, které mají být zobrazeny, jako by stránka News definovala kategorii - což pro nás není případ. Jaké by byly vhodné podmínky pro dotaz_posts, abych mohl simulovat dotaz_příkazů, které WP obvykle běží, když se dostanete na titulní stránku typického blogu?

1
FOR

Způsob, jakým na svém blogu získávám příspěvky, je následující:

<?php $recentPosts = new WP_Query(); $recentPosts->query('showposts=5&cat=CAT_ID_GOES_HERE'); while($recentPosts->have_posts()): $recentPosts->the_post(); ?>

Pak byste šli a vytvořili kód pro ovládání zobrazení každého příspěvku. Takže pro opravdu jednoduchý příklad:

<h1 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>

Poté na konci příspěvků stačí ukončit smyčku:

<?php endwhile; ?>
3
Adam Thompson

Jen pro jistotu - zde vůbec nepoužíváte Reading nastavení? Pravidelná domovská stránka a pravidelná statická stránka?

  • vaše News stránka je statická stránka, takže její smyčka (nativní WP smyčka vytvořená z URL) by měla odrážet tuto (takže si není jistá, jak to vypadá, že je kategorie);
  • query_posts() je funkce určená k nastavení takové nativní smyčky. Neměli byste ho používat zde, protože byste se pokoušeli násilně změnit statickou stránku na stránku indexu, která skončí v hrozných chybách.
  • můžete použít vlastní WP_Query nebo get_posts() k zobrazení některých příspěvků na statické stránce, pravděpodobně nebudete dostávat stránkování do práce.

Celkově mám pocit, že tady objevujete kolo. Zdá se, že Settings > Reading je v pohodě.

  1. Front page se statickým obsahem a šablonou front-page.php.
  2. Posts page, které automaticky použije výchozí Loop pro poslední příspěvky nebo může být přizpůsobeno pomocí šablony home.php.

Vypadá to přesně to, co se snažíte dostat, ne?

PS TwentyTen loop.php mě děsí. Vypadá to, že použitelnost a zdravý rozum byly obětovány za maximální podmíněnou flexibilitu.

1
Rarst

Nejsem si jistý, je to přesně to, co potřebujete, ale možná byste se chtěli podívat na mé řešení. Je to funkce, která zobrazuje seznam příspěvků kdekoli chcete, s miniaturami pro první obrázek příspěvku.

http://wpworks.wordpress.com/2011/02/01/display-wordpress-post-list-with-custom-size-thumbnails/

Doufám, že to považujete za užitečné.

S pozdravem,

Alvaro

0
user2876