我在wordpress博客中有幾篇文章。例如,如果我在我的博客以下鏈接:如何在wordpress中創建自定義分頁固定鏈接
http://example.com/heartbreaking-photos 任何想法,我怎樣才能改變從
http://example.com/heartbreaking-photos/2 到http://example.com/heartbreaking-photos/CUSTOM-STRING
定製STRING瞄準第二個頁面的鏈接是一個頁面內的自定義標題
我在wordpress博客中有幾篇文章。例如,如果我在我的博客以下鏈接:如何在wordpress中創建自定義分頁固定鏈接
http://example.com/heartbreaking-photos 任何想法,我怎樣才能改變從
http://example.com/heartbreaking-photos/2 到http://example.com/heartbreaking-photos/CUSTOM-STRING
定製STRING瞄準第二個頁面的鏈接是一個頁面內的自定義標題
要做到這一點,你需要做兩件事情:
禁用WordPress默認規範重定向 - 這是必要的,因爲WordPress會始終重定向到/2/
頁面時遇到的URL或查詢參數中的頁面參數。
添加一個自定義重寫規則,將您的自定義標題引導到頁面的第二頁 - 這對於允許您想要的鏈接格式而言基本上是必需的。
在代碼方面,這是你所需要的(這是一個工作的解決方案,我只是測試它在本地):
// 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'
);
}
有您可能需要配置三件事情或改變位置:
$page_slug
- 這是你的頁面的蛞蝓,你的情況,這是heartbreaking-photos
$page_num
- 您的分頁頁數,在您的情況下,這是2
$title
- 您希望使用的標題而不是您的頁碼2
。隨意根據需要更改代碼,或將其複製以覆蓋更多其他情況,與此類似。
編輯
重要:一旦你使用的代碼,進入設置>永久鏈接,並點擊「保存更改」按鈕。這將重建您的重寫規則,並且是解決方案工作所必需的。
希望有所幫助。如果您有任何問題,請告訴我。
你可以試試這個代碼。通過在阿根廷,你會得到頁ID,頁面標題和使用這些 https://codex.wordpress.org/Function_Reference/get_pages
或者您也可以通過頁面ID調用頁面標題
$pagetitle= get_post_field('post_title', $page_id);
好了,所以基本上你不希望顯示頁面下的導航鏈接(使用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');
感謝您的回覆,我在本地嘗試了您的解決方案,但無法使其正常工作。我嘗試了兩種不同的主題。我試圖在'functions.php'的開頭和結尾添加代碼。我也一定要改變後期slug..any的想法還有什麼可以在我的機器上不同,以防止這件事情工作..? – Delashmate
我更新了我的答案,因爲我錯過了一件小事。在對重寫規則進行更改後(如本代碼所做的那樣),您應該轉至設置>固定鏈接並單擊「保存更改」按鈕。這將使您的更改真正起作用,因爲重寫規則將被重新生成。一旦你嘗試過,如果你遇到麻煩,請告訴我。 –