Behalten Sie den gekennzeichneten Inhaltseintrag mit der ursprünglichen Bestellung auf der Startseite


17

Ich suche, wie ich den vorgestellten Beitrag auf meiner Blog-Homepage behalten kann, ohne ihn vom Abfrage-Beitrag auszuschließen. Mein Blog verwendet das Thema Vierundzwanzig. Ich habe diese Lösung gefunden.

Öffnen Sie die Datei featured-content.php aus dem inc-Ordner Ihres Themas und suchen Sie den folgenden Code (in unserem Fall Zeile 269).

$query->set( 'post__not_in', $featured );

Kommentieren Sie diese Zeile einfach aus, indem Sie zwei Schrägstriche davor einfügen:

// $query->set( 'post__not_in', $featured );

Die Datei enthält diese Zeile jedoch nicht, und das untergeordnete Thema kann den übergeordneten Ordner inc des Themas nicht überschreiben.

Ich habe eine andere Lösung gefunden und es funktioniert, aber das Problem ist, dass dieser Code den vorgestellten Inhaltsbeitrag nicht in der ursprünglichen Reihenfolge anzeigt. Wenn ein alter Inhaltsbeitrag - ich verwende einen Haftnotizbeitrag, um einen vorgestellten Beitrag zu erstellen - vorgestellt wird, wird der vorgestellte Inhaltsbeitrag die erste Bestellung und dann der andere Beitrag.

Ich habe versucht, bedingte Tags wie dieses zu verwenden.

function show_featured_content_on_home() {
if ( !is_home() ) {
remove_action( 'pre_get_posts', array( 'Featured_Content', 'pre_get_posts' ) );
    }
}
add_action( 'init', 'show_featured_content_on_home', 31 );

Die zweite Seite und so weiter okay - zeige die vorgestellten Beiträge in der richtigen Reihenfolge - aber die Homepage hat immer noch Probleme.

Irgendwelche Vorschläge?


Ich glaube, ich habe die Antwort. Damit es funktioniert, müssen Sie das Tag "featured" verwenden, anstatt "sticky post" zu verwenden, um Inhalte mit Features zu erstellen. Die Lösung ist also richtig und ich habe falsches Verständnis und falsche Fragen. Das bedingte Tag können Sie entfernen, da der Code ohne bedingte Tags funktioniert.
Naziman Azlye

1
Ich weiß, dass dies ziemlich spät ist, aber würde es Ihnen etwas ausmachen, den obigen Kommentar als Antwort hinzuzufügen? Diese Frage hat einige positive Stimmen und eine richtige Antwort macht es offensichtlicher. Danke im Voraus!
Kraftner

Antworten:


1

Ich denke, Sie können die WPQuery verwenden

    $the_query = new WP_Query( array( 'post__in' => get_option( 'sticky_posts' )) ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

        <!-- pagination here -->

        <!-- the loop -->
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>   
<h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>


    <?php endif; ?>

und um Ihren Beitrag zu bestellen, können Sie bestellen und bestellen, siehe Referenz https://codex.wordpress.org/Class_Reference/WP_Query

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.