ANMELDUNG
So ändern Sie die Anzahl der Beiträge pro Seite in WordPress dynamisch
P粉256487077
P粉256487077 2023-09-02 09:13:54
0
1
335

Ich möchte die Anzahl der auf bestimmten Seiten meiner WordPress-Site angezeigten Beiträge ändern.

Ich habe hier den folgenden Codeausschnitt gefunden:

$postsPage = $settings["postspage"]; query_posts('posts_per_page='.$postsPage);

Vorher anrufen if (have_posts()) while (have_posts()) the_post()

Ich bin sehr neu in PHP, aber was ich versuche, ist Folgendes

... if ( is_front_page()) { $postsPage = $settings["postspage"] + 1; }elseif ( is_tag()) { $postsPage = $settings["postspage"] - 2; } anders { $postsPage = $settings["postspage"]; } query_posts('posts_per_page='.$postsPage); ...

Aber leider funktioniert es nicht. Stattdessen wird nur 1 Beitrag von der Startseite zurückgegeben, statt der im WP-Menü festgelegten 5 Beiträge + 1. Ich kann den gewünschten Wert wie $postPage = 6; für is_front_page fest codieren und es funktioniert gut. Aus irgendeinem Grund kann ich nichts zu dem durch $settings["postspage"] angegebenen Wert hinzufügen/subtrahieren. Es funktioniert auch, wenn ich den Wert nicht ändere (else-Klausel). Was habe ich verpasst?

Ich habe versucht, den Wert von $settings["postspage"] in eine Ganzzahl umzuwandeln, weil ich dachte, dass er als Zeichenfolge zurückgegeben werden könnte. Ich verwende: $postsPage = (int)$settings["postspage"] + 1; oder $postsPage = intval($settings["postspage"]) + 1;< ;/code>Aber ohne Erfolg. Da ich mich mit WordPress-Funktionen und deren Variablen nicht so gut auskenne, habe ich nach dem Grund gesucht, warum ich die Anzahl der Beiträge nicht ändern kann. Ich würde mich über jeden Tipp freuen!

P粉256487077
P粉256487077

Antworte allen (1)
P粉153503989

目前尚不清楚您将该代码放在哪里,以及如何找到$settings,但这应该可行。

add_action( 'pre_get_posts', 'alter_number_of_posts' ); function alter_number_of_posts( $query ) { if ( !$query->is_main_query() ){ return; } $posts_per_page = get_option( 'posts_per_page' ); if ( is_front_page() ) { $query->set( 'posts_per_page', $posts_per_page + 1 ); return; } if ( is_tag() ) { $query->set( 'posts_per_page', $posts_per_page - 2 ); return; } }

$query通过引用传递,因此您对其所做的任何更改都将反映在全局查询对象中。您不需要返回它,这意味着您可以安全地从每个条件内的函数返回,而不是使用elseif

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!