Bagaimana untuk menukar bilangan siaran setiap halaman secara dinamik dalam WordPress
P粉256487077
P粉256487077 2023-09-02 09:13:54
0
1
336

Saya ingin menukar bilangan catatan yang dipaparkan pada halaman tertentu pada tapak WordPress saya.

Saya menjumpai coretan kod berikut di sini:

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

Panggil sebelum ini jika (have_posts()) manakala (have_posts()) the_post()

Saya sangat baru dengan php, tetapi apa yang saya cuba ialah ini

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

Tetapi malangnya ia tidak berfungsi. Sebaliknya, ia hanya mengembalikan 1 siaran dari halaman utama dan bukannya 5 siaran + 1 set dalam menu WP. Saya boleh hardcode nilai yang diingini seperti $postPage = 6; Atas sebab tertentu saya tidak boleh menambah/menolak apa-apa daripada nilai yang diberikan oleh $settings["postspage"]. Ia juga berfungsi jika saya tidak menukar nilai (klausa lain). Apa yang saya terlepas?

Saya telah cuba menukar nilai $settings["postspage"] kepada integer kerana saya fikir ia mungkin dikembalikan sebagai rentetan. Saya menggunakan: $postsPage = (int)$settings["postspage"] + 1; atau $postsPage = intval($settings["postspage"]) + 1;< ;/code>Tetapi tidak berjaya. Oleh kerana saya tidak begitu biasa dengan fungsi wordpress dan pembolehubahnya, saya sedang mencari sebab mengapa saya tidak boleh mengubah suai bilangan siaran. Saya akan menghargai sebarang petua!

P粉256487077
P粉256487077

membalas semua (1)
P粉153503989

Tidak jelas di mana anda meletakkan kod ini dan cara mencarinya$settings, tetapi ia sepatutnya berfungsi.

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.

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!