Layoutentwurf "Schuhe für Kinder"

WordPress: Artikel ohne Probleme an unterschiedlichen Stellen ausgeben

Layoutentwurf "Schuhe für Kinder"Möchte man ein neues WordPress-Theme möglichst individuell gestalten, so kommt man teilweise auf Ideen, die bei der Umsetzung sehr trickreich sein können. Unter Anderem hatte ich die Idee, den ersten Artikel aus der Query herauszunehmen und im Header zu positionieren. Also in einem ganz anderen Template. Das hört sich einfach an, stellte sich aber doch als recht schwierig heraus, denn ich wollte in der normalen Query natürlich weiterhin alle anderen Artikel anzeigen und den User auch dort navigieren lassen. Genau diese Funktion machte aber immer wieder Schwierigkeiten und zeigte zusätzlich den ersten Artikel an, was nicht sein sollte.

Nach vielem Hin- und Herprobieren habe ich dann doch noch eine Lösung für das Problem gefunden. Der Code wird, wie bereits erwähnt, an zwei unterschiedlichen Stellen in den Templates eingefügt. Dafür ist aber wichtig, dass der erste Code in der Rehenfolge vor dem zweiten ausgegeben wird.

Der folgende Code produziert den ersten Artikel und kann beliebig im oberen Bereich des Themes eingesetzt werden:

<?php $my_query = new WP_Query('showposts=1');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID; ?>

<div id=“first“>
<h2><a href=“<?php the_permalink() ?>“><?php the_title(); ?></a></h2>
<div class=“postmetadata“>
<?php the_time(‚d.m.Y‘) ?> –
Category <?php the_category(‚, ‚) ?> –
<?php comments_popup_link(‚Comments: 0‘, ‚Comments: 1‘, ‚Comments: %‘); ?>
</div>
<?php the_excerpt(“); ?>
</div>

<?php endwhile; ?>

Nun der Code, der den Rest der Query produziert inkl. der Navigation, die ohne Probleme alle Artikel anzeigt, bis auf den jeweils aktuellsten:

<?php if (have_posts()) : while (have_posts()) : the_post();
if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); ?>

<div class=“post“ id=“post-„>
<h2><a href=“<?php the_permalink() ?>“><?php the_title(); ?></a></h2>
<div class=“postmetadata“>
<?php the_time(‚d.m.Y‘) ?> –
Category <?php the_category(‚, ‚) ?> –
<?php comments_popup_link(‚Comments: 0‘, ‚Comments: 1‘, ‚Comments: %‘); ?>
</div>
<?php the_content(‚Read more‘); ?>
</div>

<?php endwhile; ?>

<div class=“navigation“>
<?php next_posts_link(‚« Older articles‘) ?>
<?php previous_posts_link(‚Newer articles »‘) ?>
</div>

<?php endif; ?>

Das war alles! Ich wünsche viel Spaß mit dem Code!

Published by

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert