登入
如何動態更改 WordPress 中每頁的貼文數
P粉256487077
P粉256487077 2023-09-02 09:13:54
0
1
368

我想更改我的 WordPress 網站上某些頁面上顯示的貼文數量。

我在這裡找到了以下程式碼片段:

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

之前調用 if (have_posts()) while (have_posts()) the_post()

我對 php 很不熟悉,但我正在嘗試的是這樣的

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

但不幸的是它不起作用。相反,它只返回首頁的 1 篇文章,而不是 WP 選單中設定的 5 篇文章 1。我可以對所需的值進行硬編碼,例如$postPage = 6; for is_front_page 並且它可以正常工作。 由於某些原因,我無法從 $settings["postspage"] 給出的值中添加/減去任何內容。如果我不更改值(else-clause),它也可以工作。我錯過了什麼?

我已經嘗試將 $settings["postspage"] 的值轉換為整數,因為我認為它可能會作為字串傳回。我使用: $postsPage = (int)$settings["postspage"] 1;$postsPage = intval($settings["postspage"]) 1;但沒有成功。由於我不太熟悉 wordpress 函數及其變量,因此我一直在尋找為什麼無法修改帖子數量的原因。 我很感激任何提示!

P粉256487077
P粉256487077

全部回覆 (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

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!