所有站点的全局父主题

时间:2013-02-26 作者:mysterious

我的服务器上安装了15个不同的wordpress站点。它们是独立安装,而不是多站点安装。我开发了一个父主题,并将其复制到所有网站。现在,每当我必须更改父主题时,我必须访问所有站点的父主题,并在每个主题中进行更改。有没有可能我可以全球化这个父主题,这样我就可以在一个地方进行更改,并反映在所有15个站点上(不使用多站点功能)。虽然我编写了一个php脚本,可以在所有站点中复制父主题,但我并不满意,因为我每次都必须调用该脚本。

2 个回复
SO网友:fuxia

为主题创建单独的目录和(子)域
假设域是themes.example.com, 目录是/extra/wp-themes/.

现在让您的所有安装都使用新的主题根目录。或者就这么做the same for plugins 从一个地方管理所有插件。

无法使用常量注册新的主题根目录,您需要这样的插件:

<?php
/* Plugin Name: Local Theme Roots */

add_filter( \'theme_root_uri\', \'t5_switch_theme_root\' );
add_filter( \'theme_root\',     \'t5_switch_theme_root\' );

/**
 * Create a custom theme directory.
 *
 * @wp-hook theme_root
 * @wp-hook theme_root_uri
 * @author  Thomas Scholz, http://toscho.de
 * @param   string $in URL or path
 * @return  string
 */
function t5_switch_theme_root( $in )
{
    if ( \'theme_root_uri\' === current_filter() )
        return "http://themes.example.com";

    // If we made it so far we are in the \'theme_root\' filter.
    $new_root = \'/extra/wp-themes\';
    register_theme_directory( $new_root );
    return $new_root;
}
请注意WordPress的主题更新程序中有一个bug,它不允许您从WordPress更新主题。使用自定义主题目录时的org目录。您必须手动运行这些主题的更新,或使用Ticket #22501 直到WordPress 3.6退出。

SO网友:Mark Kaplun

假设您在linux上,并且所有站点都在一台服务器上,您可以使用symbolic links

如果主题的部署位置是/home/me/mytheme,请在每个站点的主题目录中添加一个指向它的符号链接

/主页/网站1/wp内容/主题/mytheme->/主页/我/mytheme

每次apache访问文件/home/site1/wp-content/themes/mytheme/x.php时,操作系统都会加载文件/home/me/mytheme/x.php,因此/home/me/mytheme/x.php文件的更改将立即影响所有站点。

结束

相关推荐

WP MultiSite:默认添加关于博客创建的页面

我希望在使用WP Multisite创建新站点时,在默认情况下添加一个页面。因此,我有一个创建两个页面的函数:function my_default_pages() { $default_pages = array(\'Impress\', \'Contact\'); $existing_pages = get_pages(); foreach($existing_pages as $page) { $temp[] = $p