問題描述
這是我使用的代碼:
<?php echo str_replace( home_url(), '', get_permalink($post->ID) ); ?>
它的作用是輸出固定鏈接作為相對 URL,即只有 s lug 。例如,如果固定鏈接是 http://example.com/2012/01/post-title/,代碼輸出的相對 URL 看起來像/2012/01/post-title/。
問題:所有帖子和頁面顯示正確的永久鏈接,這是偉大的。但所有其他頁面 (包括主頁,搜索和歸檔) 都會顯示第一篇文章的相對 URL,而不是相應頁面的相對 URL 。任何想法為什麼?我在這裏做錯了什麼?
參考:Get page permalink without wpurl
編輯:這是我試過的還有什麼:
在 functions.php
function get_relative_permalink( $url ) {
$url = get_permalink();
return str_replace( home_url(), "", $url );
}
在 header.php
<link rel="alternate" hreflang="en-IN" href="http://in.example.com/<?php%20echo%20get_relative_permalink();%20?>" />
同樣的問題也是這樣。但是這也顯示了一個 not-so-informative 錯誤。
最佳解決方案
使用 $_SERVER['REQUEST_URI']代替 get_permalink()來獲取當前的 URL 。
例如如 example.com/test/page echo $_SERVER['REQUEST_URI']; 打印/test/page
次佳解決方案
我用
str_replace(home_url(), '', get_permalink());
如果站點根目錄不是/
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。