問題描述
我們使用 Wordpress 作為知識庫。我們剛剛為 Github 頁面留下了 mediawiki 和 jekyll,並將不同系統的數量從四個減少到僅一個。一個 Wordpress 安裝的博客和三個三個不同的知識庫為三個不同的產品。優點是編輯者只需要掌握一個系統而不是三個系統。
我們已經將固定鏈接設置為/%postname%/,這使得良好和邏輯的網頁鏈接。在大多數頁面中,我們使用編輯器添加到其他知識庫頁面的鏈接。在彈出式窗口中,我們選擇要鏈接的頁面。該固定鏈接添加到頁面。由於我們不斷致力於知識庫,所以會發生郵件名稱更改。這將導致在內部知識庫頁面上鍊接到更改的帖子 404 錯誤。
因此,我想添加頁面 ID(?p = 123) 而不是郵件名稱。當鏈接被點擊在前端 Wordpress 似乎足夠聰明地將頁面 id 重寫到/%postname%/Advantage 是我不必更改每個頁面中的鏈接。 (或者也可以自動完成?)
最佳解決方案
添加到你的 functions.php:
function wp_link_query_mod ( $results ){
if( count( $results ) ){
for( $i=0; $i<count($results); $i++ ){
$results[$i]['permalink'] = wp_get_shortlink( $results[$i]['ID'] );
}
}
return $results;
}
add_filter('wp_link_query', 'wp_link_query_mod');
這個鈎子只能從 WP 3.7 開始使用,如果你有一個早期的版本,那麼它有一個替代方案,但這意味着要更改 WP 核心文件中的一行。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。