it-swarm.com.de

Beiträge nach Kategorie auflisten aktuellen Beitrag ausschließen

Ich versuche, eine Liste der Beiträge aus einer Kategorie abzurufen, den Titel und den Permalink aller Beiträge in dieser Kategorie wiederzugeben, aber den Permalink und den Beitragsnamen auszuschließen, WENN der aktuelle Beitrag auf dieser Liste ist.

Es wird auf single.php nach oder innerhalb der Schleife angezeigt

Wer weiß, ob es möglich ist, wenn ja wie?

Danke im Voraus

<?php query_posts('category_name=MyCatName&showposts=-1'); ?>
<?php while (have_posts()) : the_post(); ?>

        <a href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
          </a>
        <?php endwhile; ?>
3
user983248

Beachten Sie zunächst, dass Sie die Klasse WP_Query anstelle von query_posts() verwenden sollten, da es sich bei Ihrer benutzerdefinierten Schleife um eine sekundäre Schleife/Abfrage handelt. Lesen Sie warum .

Davon abgesehen

/* main post's ID, the below line must be inside the main loop */
$exclude = get_the_ID();

/* alternatively to the above, this would work outside the main loop */
global $wp_query;
$exclude = $wp_query->post->ID;

/* secondary query using WP_Query */
$args = array(
    'category_name' => 'MyCatName', // note: this is the slug, not name!
    'posts_per_page' => -1 // note: showposts is deprecated!
);
$your_query = new WP_Query( $args );

/* loop */
echo '<ul>';
while( $your_query->have_posts() ) : $your_query->the_post();
    if( $exclude != get_the_ID() ) {
        echo '<li><a href="' . get_permalink() . '">' .
            get_the_title() . '</a></li>';
    }
endwhile;
echo '</ul>';

das wird gehen.

6
Johannes Pille

Basierend auf Johannes 'Code, aber mit dem Argument post__not_in:

/* Secondary query using WP_Query */
$wpse63027_posts = new WP_Query( array(
    'category_name'  => 'MyCatName',
    'posts_per_page' => -1,
    'post__not_in'   => array( get_queried_object_id() ), // Exclude current post ID (works outside the loop)
) );

Dann können Sie die neuen Beiträge durchlaufen:

if ( $wpse63027_posts->have_posts() )
{
    while( $wpse63027_posts->have_posts() )
    {
        $wpse63027_posts->the_post();

        // Now do everything you want with the default API calls
        // Example
        the_title( '<h2>', '</h2>', true );
        the_content();
    }
}

WP_Query "Post _ */PageParameters

2
Geert