WordPress ist eben doch ein Content Management System! Wie bei anderen Systemen auch lassen sich auf den einzelnen Seiten zusätzlich zum statischen Inhalt z.B. immer wieder dieselben aktuellen News einbinden. Angeregt durch eine Besucheranfrage an uns habe ich diese Aufgabenstellung einmal umgesetzt.
Zuerst eine Kategorie "News" anlegen, die nur für diesen Zweck eingerichtet und mit den aktuellen Nachrichten befüllt wird. Das page-Template wird durch eine zweite Loop erweitert (hier am Beispiel des Kubrick-Themes):
- <?php get_header(); ?>
- <div id="content" class="narrowcolumn">
- <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
- <div class="post" id="post-<?php the_ID(); ?>">
- <h2><?php the_title(); ?></h2>
- <div class="entrytext">
- <?php the_content(‘<p class="serif">Read the rest of this page »</p>’); ?>
- <?php link_pages(‘<p><strong>Pages:</strong> ‘, ‘</p>’, ‘number’); ?>
- </div>
- </div>
- <?php endwhile; endif; ?>
- <h2>Die letzten 5 News</h2>
- <?php query_posts(‘category_name=News&showposts=5′); ?>
- <?php while (have_posts()) : the_post(); ?>
- <div class="post" id="post-<?php the_ID(); ?>">
- <h4><?php the_title(); ?></h4>
- <div class="entrytext">
- <?php the_content(); ?>
- </div>
- </div>
- <?php endwhile;?>
- </div>
- <?php get_sidebar(); ?>
- <?php get_footer(); ?>
Jetzt erscheinen unterhalb des Seiteninhalts die fünf neuesten Einträge der Kategorie "News". Dasselbe läßt sich auch im sidebar-Template unterbringen, wenn man die News lieber im Seitenbereich ansiedelt:
- ….</li> // Listengliederung der Sidebar
- <li><h2>News</h2>
- <ul>
- <?php query_posts(‘category_name=News&showposts=5′); ?>
- <?php while (have_posts()) : the_post(); ?>
- <li><b><?php the_title(); ?></b><br />
- <?php the_content(); ?>
- </li>
- <?php endwhile;?>
- </ul>
- </li>
7. Juli 2009 um 20:09 Uhr
vielen dank! Hat mir sehr geholfen.
Ich würde jetzt nur gerne eine funktion einbauen, dass ei Text angezeigt wird, wenn keine News vorhanden sind.
Kann mir da jemand helfen?
28. Januar 2008 um 00:36 Uhr
Eine tolle Idee! Bei mir gab es allerdings das Problem, dass der neue Loop den anderen “Hauptloop” so beeinflusst hat, dass in diesem immer auch die News angezeigt wurden. Ich habe dann folgenden Loop verwendet:
have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
the_content((more…));
endwhile;
?>
Leider funktioniert hier das “more-Tag” nicht, was sehr schade ist, denn dann könnte man eine lange version der News schreiben, die dann gleich verlinkt würden.
Wisst ihr da Rat?
Grüße und vielen Dank Hens
1. April 2007 um 18:10 Uhr
Hmmm…das wa r ja wohl nix mit dem schreiben des Quelltextes…so sieht er natürlich nicht aus
1. April 2007 um 18:09 Uhr
Hi,
ich bekomme dabei immer eine Fehlermeldung:
Parse error: syntax error, unexpected $end in …page.php on line 30
Der Quelltext der page.php schaut so aus:
“>
Weiterlesen »’); ?>
Pages: ‘, ”, ‘number’); ?>
Der Herold verkündet:
“>
‘, ”); ?>
Was mach ich falsch???
20. November 2006 um 22:21 Uhr
Danke für diesen Tipp. Ich hatte in meinem Theme versehentlich wohl die Anzeige der Seiten gelöscht. Dank eures Codeschnipsels “Pages: ‘, ”, ‘number’); ?>” läuft nun alles wieder, wie es soll.
Gruß
apollon