2016-07-24 127 views

回答

5

要做到這一點,你需要做兩件事情:

  1. 禁用WordPress默認規範重定向 - 這是必要的,因爲WordPress會始終重定向到/2/頁面時遇到的URL或查詢參數中的頁面參數。

  2. 添加一個自定義重寫規則,將您的自定義標題引導到頁面的第二頁 - 這對於允許您想要的鏈接格式而言基本上是必需的。

在代碼方面,這是你所需要的(這是一個工作的解決方案,我只是測試它在本地):

// Removes the canonical redirection 
remove_filter('template_redirect', 'redirect_canonical'); 

// Add custom rewrite rules 
add_action('init', 'my_add_custom_rewrite_rules'); 
function my_add_custom_rewrite_rules() { 
    // Slug of the target page 
    $page_slug = 'heartbreaking-photos'; 

    // Page number to replace 
    $page_num = 2; 

    // Title you wish to replace the page number with 
    $title = 'custom-string'; 

    // Add the custom rewrite rule 
    add_rewrite_rule(
     '^' . $page_slug . '/' . $title . '/?$', 
     'index.php?pagename=' . $page_slug . '&page=' . $page_num, 'top' 
    ); 
} 

有您可能需要配置三件事情或改變位置:

  1. $page_slug - 這是你的頁面的蛞蝓,你的情況,這是heartbreaking-photos
  2. $page_num - 您的分頁頁數,在您的情況下,這是2
  3. $title - 您希望使用的標題而不是您的頁碼2

隨意根據需要更改代碼,或將其複製以覆蓋更多其他情況,與此類似。

編輯

重要:一旦你使用的代碼,進入設置>永久鏈接,並點擊「保存更改」按鈕。這將重建您的重寫規則,並且是解決方案工作所必需的。

希望有所幫助。如果您有任何問題,請告訴我。

+0

感謝您的回覆,我在本地嘗試了您的解決方案,但無法使其正常工作。我嘗試了兩種不同的主題。我試圖在'functions.php'的開頭和結尾添加代碼。我也一定要改變後期slug..any的想法還有什麼可以在我的機器上不同,以防止這件事情工作..? – Delashmate

+0

我更新了我的答案,因爲我錯過了一件小事。在對重寫規則進行更改後(如本代碼所做的那樣),您應該轉至設置>固定鏈接並單擊「保存更改」按鈕。這將使您的更改真正起作用,因爲重寫規則將被重新生成。一旦你嘗試過,如果你遇到麻煩,請告訴我。 –

0

好了,所以基本上你不希望顯示頁面下的導航鏈接(使用css或修改兒童主題中的發佈模板)並添加自定義鏈接。如果我理解得很好:

刪除導航鏈接(取決於你的主題,但基本上):

.nav-links { display: none; } 

您可以通過功能+自訂欄添加自定義鏈接:

創建自定義字段,例如在您的文章「我的URL」,看食品:https://codex.wordpress.org/Custom_Fields

添加到您的functions.php(在兒童主題或自定義網站的插件):

function my_page_add_to_content($content) { 

    if (! empty(get_post_meta(get_the_ID(), 'my-url', true)) { 
     $content .= '<a href="'.get_post_meta(get_the_ID(), 'my-url', true).'">URL TEXT HERE</a>' 
    } 

    return $content; 
} 
add_filter('the_content', 'my_page_add_to_content'); 
相關問題