2012-04-03 77 views
4

我剛剛安裝了Wordpress,我發現的一件事是網站URL似乎在所有生成的HTML中被硬編碼。URL中的wordpress和硬編碼域名

例如,我看到的東西,如:

<link rel="profile" href="http://gmpg.org/xfn/11" /> 
<link rel="stylesheet" type="text/css" media="all" href="http://www.mywebserver.com/wp- content/themes/twentyeleven/style.css" /> 
<link rel="pingback" href="http://www.mywebserver.com/xmlrpc.php" /> 

有沒有辦法告訴WordPress的在生成的URL來剔除域名?舉例來說,我寧願:

<link rel="profile" href="http://gmpg.org/xfn/11" /> 
<link rel="stylesheet" type="text/css" media="all" href="/wp-content/themes/twentyeleven/style.css" /> 
<link rel="pingback" href="/xmlrpc.php" /> 
+2

您可能會覺得這個討論很有趣。 http://wordpress.org/support/topic/using-relative-instead-of-absolute-links-for-images?replies=19 – mrtsherman 2012-04-03 02:33:56

+0

感謝您的鏈接,這非常有趣。 – steve8918 2012-04-03 03:32:39

回答

7

的代碼幾個鏈接可以修復它,在你的函數文件和頭文件:Fix absolute links in Wordpress

的functions.php

function fix_links($input) { 
return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input); 
} 

頭.php - 在輸出任何HTML之前

ob_start('fix_links'); 
+0

謝謝,這正是我一直在尋找的。 – steve8918 2012-04-03 03:33:00

+0

我不得不用兩種方法修改它:一個添加<?php ob_end_flush(); ?>添加到頁腳末尾(最佳做法),並將$ _SERVER ['SERVER_NAME']更改爲Wordpress主機函數site_url(),例如返回(str_replace(site_url(),「」,$ input));因爲我代理的網站和SERVER_NAME返回代理主機,而不是WordPress主機。 – mummybot 2016-02-26 09:32:06