WordPress中刪除或重新命名wp-content目錄

中,wp-是預設的使用者內容目錄。所有的和主題也都分別上傳到wp-content/plugins,wp-content/theme目錄。也許,你不知道。 Wordpress是允許使用者把wp-content隨便放置,移動,或重新命名為任意你想要的目錄名稱!為Wordpress設定內容目錄和外掛程式目錄,編輯wp-config.php檔案。把以下的程式碼插入檔案中,以下的4個常數就是來重定義wordpress的內容和外掛程式路徑。

/** 設定wp-content目錄路徑**/
define('WP_CONTENT_DIR', '/path/to/custom/wp-content');
define('WP_CONTENT_URL', 'url/to/custom/wp-content');

/** 設定插件目錄路徑**/
define( 'WP_PLUGIN_DIR', '/path/to/custom/plugins' );
define( 'WP_PLUGIN_URL', 'url/to/custom/plugins' );

例如:

define( 'WP_CONTENT_DIR', '/home/uzbox/public_html/user_content' );
define( 'WP_CONTENT_URL', 'http://www.uzbox.com/user_content' );

define( 'WP_PLUGIN_DIR', '/home/uzbox/public_html/plugins' );
define( 'WP_PLUGIN_URL', 'http://www.uzbox.com/plugins’ );

說明:常數WP_CONTENT_DIR和WP_PLUGIN_DIR是用來指定內容和外掛程式的系統路徑,也就意味著你可以不再用wp-content如此通用的目錄名稱了。這個目錄也並非可以亂指定,必須要web伺服器能夠存取到的位置才可以,所以理論上的位置必須包含在網站根目錄或子目錄裡面。

利用php的全域變數$_SERVER['DOCUMENT_ROOT']和$_SERVER['SERVER_NAME']來建構一個相對於根目錄的路徑。

例如:

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/user_content' );
define( 'WP_CONTENT_URL', $_SERVER['SERVER_NAME'] . '/user_content' );

常數WP_CONTENT_URL和WP_PLUGIN_URL為自訂的目錄(不含「/」)指定一個基本的URL,以便在內容和外掛目錄都可以正常存取。

完全移除wp-content目錄是可以的。你只用指定內容目錄為網站的根目錄即可。如:

define( 'WP_CONTENT_DIR', '/home/uzbox/' );
define( 'WP_CONTENT_URL', 'http://www.uzbox.com/' );

define( 'WP_PLUGIN_DIR', '/home/uzbox/plugins' );
define( 'WP_PLUGIN_URL', 'http://www.uzbox.com/plugins’ );

在這種情況下,所有的主題,外掛程式和上傳目錄都會直接暴露在根域下。 http://www.uzbox.com/themes, http://www.uzbox.com/plugins, http://www.uzbox.com/uploads

透過WP_PLUGIN_DIR和WP_PLUGIN_URL,使用者可以變更外掛目錄名稱。如用“CHAJIAN”或“pi”。由於插件目錄可以配置到內容以外的目錄,所以你就可以把它放到內容以外的目錄或仍然放在內容目錄。但一旦改變了wp-content目錄,再把插件目錄指定到wp-content目錄也就沒什麼意義了。如果你想繼續保持wordpress目錄結構的話,插件目錄也就應該放在內容目錄中。

更改了內容目錄後,使用者或許要更改wordpress的上傳目錄。以避免一些路徑問題。關於這部分內容,請查看「wordpress中如何變更上傳目錄」。如果你已經在網站中更改了wp-content目錄的路徑和名稱。移動現在的主題、外掛程式和上傳目錄(如果後兩者名稱沒有改變)到適當的路徑以確保Wordpress程式能夠正常的工作也就變得異常重要了。另外,所有指向圖片、影片、媒體和其他檔案的位址都應更正到一個正確的路徑。這些變化並不僅限於文章和頁面中,而且我們可以用主題或外掛的選項來保存它。

WordPress並沒有直接提供重新命名或更改主題文件位置的方法。然後,Wordpress提供了一個註冊主題目錄的函數register_theme_directory(),讓使用者可以註冊目錄來放置主題文件,也就是額外的主題資料夾。為了註冊一個額外的主題目錄,建立一個名為「擴展主題目錄」的外掛程式。然後把它上傳到插件資料夾並

程式碼如下:


/*
Plugin Name: 擴充主題目錄
Plugin URI: http://uzbox.com/
Description: 重新註冊一個目錄來放置主題
Version: 1
Author: lyblog
Author URI: http://uzbox.com/
*/
register_theme_directory('/path/to/themes/directory');

記得把以上的目錄替換成一個指向主題的系統目錄。或是一個包含WP_CONTENT_DIR或WP_PLUGIN_DIR的資料夾。如果你加入的主題目錄是要放在內容目錄中的話,你完全可以利用常數的連結來實現相對目錄。

register_theme_directory(WP_CONTENT_DIR . '/themes');

最後最重要的是,當wp-content資料夾自訂之後,一些主題或外掛或許不能正確的識別。因此盡量不要自訂目錄,以免網站掛掉。這些問題可能是由於開發者沒有依照Wordpress內建的函數來取得目錄。對於這類問題,盡量使用apache的URL來重寫模組(或其它類型的類似方法)來重定向目錄。這就應該重寫所有指向wp-content目錄到一個新的位置。例如,你可以在.htaccess檔案中加入以下程式碼,並重新啟動伺服器:

RewriteRule (.*)(wp-content)(.*) $1content$3 [NC,R,L]

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/wp-content(/*)
RewriteRule ^wp-content/(.*)$ /content/$1 [L, NC]
在以上的程式碼中,所有到”/wp-content”的請求都會重新導向到”/content”目錄。以上的URL重寫的條件和規則只是一個例子,可能在你的伺服器環境中並不適用。你應該根據你的伺服器來進行配置。如果你的主題和外掛都是使用路徑來呼叫php檔案的話,重寫URL也就不起作用了。

評分

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *