2017-07-07 53 views
0

免責聲明:我正在一個遺留的企業WP網站(PHP 5.3.3)上工作,我不能做出很多重大突破性更改。是否可以將Wordpress參數「/ page/2」更改爲其他內容?

我正在爲現有資源頁面(/ resources)添加分頁。一般來說,我對Wordpress相當陌生,但我的頁面正常工作,並在頁面加載時顯示正確的資源數量。

我的問題是:當你使用WordPress的分頁:

<?php next_posts_link('More Resources' , $the_query->max_num_pages); ?> 

它創建頁面上的鏈接,當你點擊它,WP自動的添加頁面PARAM像這樣:/資源/頁/ 2/。我遇到的問題是,當我點擊它時,我得到了一個404。我已經完成了大量的閱讀,發生這種情況的主要原因通常是當您使用wp_query進行自定義查詢時,自定義查詢中的帖子數量與主頁面查詢中的帖子數量不同。我認爲這是最初的問題,讓我感動設置posts_per_page PARAM成pre_post_load掛鉤的邏輯,這是運行罰款:

function exp_wp_modify_main_query ($query) { 

    if ($query->is_page('resources') && $query->is_main_query()) { // Run only on resources page 
     $query->query_vars['posts_per_page'] = 8; 
    } 

} 

add_action('pre_get_posts', 'exp_wp_modify_main_query'); 

我有足夠的博客文章需要分頁(有比我每頁的帖子數量多)。我相信這個問題與這個頁面沒有分類設置有關。資源頁面沒有類別。所以,而不是像這樣的網址: resources/some_category/page/2/,它只是資源/頁面/ 2。 WP有沒有可能認爲「網頁」是類別,這就是爲什麼它扔404?

如果是的話,有沒有辦法來改變/頁/ 2//P/2/,如果是到是,即使是一個好主意?

+0

更新,我發現瞭如何改變分頁基地(ADD_ACTION(「初始化','ds_set_pagination_base'))! 但它仍然壞了。 – kauffee000

回答

0

我想通了。要更改分頁基地:

function set_pagination_base() { 

    global $wp_rewrite; 

    $wp_rewrite->pagination_base = 'p'; 

} 

然後:

我在我的插件使這個功能

add_action('init', 'set_pagination_base'); 
相關問題