在wordpress中,wp-content是默认的用户内容目录。所有的插件和主题也都分别上传到wp-content/plugins,wp-content/theme目录。也许,你不知道。Wordpress是允许用户把wp-content随便放置,移动,或重命名为任意你想要的目录名!为Wordpress设置内容目录和插件目录,编辑wp-config.php文件。把以下的代码插入到文件中,以下的4个常量是来重定义wordpress的内容和插件路径。
define(‘WP_CONTENT_DIR’, ‘/path/to/custom/wp-content’);
define(‘WP_CONTENT_URL’, ‘url/to/custom/wp-content’);
/** 设置插件目录路径 **/
define( ‘WP_PLUGIN_URL’, ‘url/to/custom/plugins’ );
例如:
define( ‘WP_CONTENT_DIR’, ‘/home/blog/public_html/user_content’ );
define( ‘WP_CONTENT_URL’, ‘http://www.baidu.com/user_content’ );
define( ‘WP_PLUGIN_DIR’, ‘/home/blog/public_html/plugins’ );
define( ‘WP_PLUGIN_URL’, ‘http://www.baidu.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/blog/’ );
define( ‘WP_CONTENT_URL’, ‘http://www.baidu.com/’ );
define( ‘WP_PLUGIN_DIR’, ‘/home/blog/plugins’ );
define( ‘WP_PLUGIN_URL’, ‘http://www.baidu.com/plugins’ );
在这种情况下,所有的主题,插件和上传目录都会直接暴露在根域下。
通过
更改了内容目录后,用户或许要更改wordpress的上传目录。以避免一些路径问题。关于这部分内容,请查看“wordpress中如何更改上传目录”。 如果你已经在网站中更改了wp-content目录的路径和名称。移动现在的主题、插件和上传目录(如果后两者名称没有改变)到适当的路径以确保Wordpress程序能够正常的工作也就变得异常重要了。另外,所有指向图片、视频、媒体和其他文件的地址都应被更正到一个正确的路径。这些变化并不只限于文章和页面中,而且我们可以用主题或插件的选项来保存它。
WordPress并没有直接提供重命名或更改主题文件位置的方法。然后,Wordpress提供了一个注册主题目录的函数register_theme_directory(),允许用户注册目录来放置主题文件,也就是额外的主题文件夹。 为了注册一个额外的主题目录,创建一个名为“扩展主题目录”的插件。然后把它上传到插件文件夹并激活。
代码如下:
<?php /* Plugin Name: 扩展主题目录 Plugin URI: www.baidu.com/ Description: 重新注册一个目录来放置主题 Version: 1 Author: lyblog Author URI: www.baidu.com/ */ register_theme_directory('/path/to/themes/directory'); ?>
记得把以上的目录替换成一个指向主题的系统目录。或者是一个包含WP_CONTENT_DIR或WP_PLUGIN_DIR的文件夹。 如果你添加的主题目录是要放在内容目录中的话,你完全可以利用常量的连接来实现相对目录。
便如:
最后最重要的是,当wp-content文件夹自定义之后,一些主题或插件或许不能正确的识别。因此尽量不要自定义目录,以免网站挂掉。这些问题可能是由于开发者没有按照Wordpress内置的函数来获取目录。 对于这类问题,尽量使用apache的URL重写模块(或者其它类型服务器的类似方法)来重定向目录。这就应该重写所有指向wp-content目录到一个新的位置。例如,你可以在.htaccess文件中加入如下代码,并重启apache服务器:
或
RewriteBase /
RewriteCond %{REQUEST_URI} ^/wp-content(/*)
RewriteRule ^wp-content/(.*)$ /content/$1 [L, NC]
在以上的救命中,所有到”/wp-content”的请求都重定向到”/content”目录。以上的URL重写的条件和规则只是一个例子,可能在你的服务器环境中并不适用。你应该根据你的服务器来进行配置。如果你的主题和插件都是使用路径来调用php文件的话,重写URL也就不起作用了。