Hallo Community,
ich habe eine Navigation geschrieben, mit der es ein kleines Problem gibt. Sie soll Artikel anzeigen, die speziell aus der Kategorie des aktuellen Beitrags kommen. Allerdings zeigt sie mir ebenfalls einen einzigen Beitrag aus einer anderen Kategorie und listet alle Beiträge zwei Mal auf. Ich komme aber nicht dahinter warum. Hilfe wäre super. Hier mein Quellcode:
PHP
<?php
global $post;
$aktuell = $post->ID; // ID von aktuellem Beitrag
$categories = get_the_category();
$thiscat = $categories[0]->cat_ID; // Kategorie auslesen
?>
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'posts_per_page' => 5,
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC',
'cat' => $thiscat,
'post_status' => 'publish'
);
$allePosts = get_posts('numberposts=-1&$args'); // alle gewünschten Posts abfragen
$postarray = array(); // und in Array speichern
foreach ($allePosts as $post) {
$postarray[] += $post->ID;
}
$current = array_search($aktuell, $postarray); // Position des aktuellen Beitrags im Array suchen
$prevPost = $postarray[$current-1]; // vorherigen Beitrag abfragen
$nextPost = $postarray[$current+1]; // nächsten Beitrag abfragen
$arr = array_values($postarray);
$first = (isset($arr[0])) ? $arr[0] : null; //ersten Beitrag finden
$last = (isset($arr[count($arr)-1])) ? $arr[count($arr)-1] : null; //letzten Beitrag finden
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("thumbnail"); ?><br /> <?php the_title(); ?> </a></li>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
</ul>
<?php /* mit get_post den ersten Post ausgeben */
global $post;
$firstposts = get_posts('include=' . $first);
foreach($firstposts as $post) : setup_postdata($post); ?>
<div class="firstPost">
<h2>erster</h2><li><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("thumbnail"); ?><br />
<?php the_title(); ?> </a></li>
</div>
<?php endforeach; ?>
<?php /* mit get_post vorherigen Post ausgeben */
global $post;$myposts = get_posts('include=' . $prevPost);
foreach($myposts as $post) : setup_postdata($post);
?> <div class="prevPost">
<h2><?php the_title(); ?>voriger</h2><li>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("thumbnail"); ?><br />
<?php the_title(); ?> </a></li>
</div>
<?php endforeach; ?>
<?php /* mit get_post den aktuellen Post ausgeben */
global $post;$myposts = get_posts('include=' . $current);
foreach($myposts as $post) : setup_postdata($post); ?>
<div class="currentPost">
<h2><?php the_title(); ?>aktueller</h2><li><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("thumbnail"); ?><br /> <?php the_title(); ?> </a></li>
</div>
<?php endforeach; ?>
<?php/* mit get_post nächsten Post ausgeben */
global $post;$myposts = get_posts('include=' . $nextPost);
foreach($myposts as $post) : setup_postdata($post); ?>
<div class="nextPost"> <h2><?php the_title(); ?>nächster</h2>
<li><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("thumbnail"); ?><br />
<?php the_title(); ?> </a></li> </div>
<?php endforeach; ?>
<?php /* mit get_post letzten Post ausgeben */
global $post;$lastposts = get_posts('include=' . $last);
foreach($lastposts as $post) : setup_postdata($post);
?>
<div class="lastPost">
<h2><?php the_title(); ?> letzter</h2><li>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("thumbnail"); ?><br />
<?php the_title(); ?> </a></li> </div>
<?php endforeach; ?>
Alles anzeigen