Markieren Sie den aktuellen Posttitel auf einer Seite

In meinem Menü habe ich eine Seite namens Campaign .

Wenn der Nutzer zu Campaign eingibt, wird auf der Seite der letzte benutzerdefinierte Post-Typ des campaign-post angezeigt.

In der Seitenleiste der Campaign wird eine Liste aller benutzerdefinierten Posts mit campaign-post angezeigt.

Das Problem besteht darin, dass ich nicht weiß, wie der letzte Beitragstitel in der Liste hervorgehoben ( current class hinzufügen) wird, der angezeigt wird, wenn der Benutzer die Campaign aufruft.

So zeige ich die Liste an:

 
    'campaign-post' ) ); while ( $query->have_posts() ) : $query->the_post(); echo '
  • '; the_title(); echo '
  • '; endwhile; ?>

Irgendwelche Ideen?

Solutions Collecting From Web of "Markieren Sie den aktuellen Posttitel auf einer Seite"

Das ist einfach: Sie sollten $wp_query->current_post , um den Index Ihrer benutzerdefinierten Abfrage abzurufen.

In Ihrem Fall funktioniert die Abfrage so:

 
    < ?php $query = new WP_Query( array( 'post_type' => 'campaign-post' ) ); while ( $query->have_posts() ) : $query->the_post(); if($query->current_post == 0){ ?>

    < ?php the_title(); ?>

    < ?php } else{ ?>

    < ?php the_title(); ?>

    < ?php } endwhile; ?>

Sie können es mehr anpassen, das zu Ihrem Bedarf passt.

Wie es funktioniert? Sie haben vielleicht bemerkt, dass es eine while-Schleife gibt, die die Ergebnisse (aus der Abfrage abgerufene Posts) nacheinander abarbeitet. Wenn wir irgendwie erfahren, dass dies der erste Post ist, dann können wir die if-else-Struktur verwenden, um sie zu extrahieren und anzupassen. Zum $wp_query->current_post sagt uns $wp_query->current_post über den Post-Index.

Sie können dies auch tun: Mehr Anpassung.

CODE EDITIERT:

 if($query->current_post == 0){ ?> 

< ?php the_title(); ?>

< ?php } elseif ($query->current_post == 1){ ?>

< ?php the_title(); ?>

< ?php } else{ ?>

< ?php the_title(); ?>

< ?php }

Verwenden Sie den Schalter : last-child in Ihrer style.css, um nur das letzte Listen-Tag in der Post-list-class zu stylen.

ul.post-list li:last-child {
/* This styling should only affect the last

  • tag in the list*/
    }