我想在我的子目录中使用相同的数据库(内容/用户/评论/元/类别等)进行另一个wordpress安装.
我其实想要创建我的网站的移动版本.但我不想使用任何移动检测脚本ory css3媒体查询.只是想创建我的新主题(移动版)
例如;
主域名也有子域名;
maindomain.com // root mobile.maindomain.com // sub directory
这怎么可能?
解决方法
关于wordpress的一个好处是代码中的大量钩子允许您扩展或覆盖核心功能.
解决此问题的一种方法是在vhost文件中为每个可以在wordpress引导过程中使用的站点设置Apache环境变量,以覆盖主题和基本URL设置.
例如在Apache vhost中添加:
SetEnv WP_CONTEXT main
和
SetEnv WP_CONTEXT mobile
(或者,如果您使用的是其他网络服务器,则相当于).
switch ($_SERVER['WP_CONTEXT']) { case 'main': define('WP_HOME','http://maindomain.com'); define('WP_SITEURL','http://maindomain.com'); break; case 'mobile': define('WP_HOME','http://mobile.maindomain.com'); define('WP_SITEURL','http://mobile.maindomain.com'); break; }
这将根据环境变量设置基本URL.
add_filter('template','change_theme'); add_filter('option_template','change_theme'); add_filter('option_stylesheet','change_theme'); function change_theme() { switch ($_SERVER['WP_CONTEXT']) { case 'main': return 'main'; break; case 'mobile': return 'mobile'; break; }
这需要在插件中,以便在正常的主题加载过程之前加载(functions.PHP是主题的一部分,因此太晚了).这些过滤器将拦截并覆盖数据库中的主题设置.