跨多个WordPress网站共享unctions.php

时间:2012-05-07 作者:Travis Pflanz

我发现自己在我的functions.php 新网站中的文件。

有没有一种方法可以用来创建一些不同的共享functions.php 要在我的网站上使用的文件?我指的不是WPMU安装,而是WordPress的完全独立安装,可能在不同的主机上使用不同的数据库。

例如,如果有我想添加到特定站点的功能,我只会将它们添加到站点自己的功能functions.php, 但也有一个共享functions.php 文件用于所有我的多作者网站,一个用于所有我的单作者网站。另一种情况是将所有类似的功能组合成单独的functions.php 文件。

更新

以下是我在高级主题中找到的一个更新示例functions.php. 这是functions.php, 所以我假设所有函数都是从其他文件中提取的。

$themename = \'CoolTheme\';
$shortname = \'cooltheme\';

include_once TEMPLATEPATH.\'/cool_framework/plugins/pagination.php\';
include_once TEMPLATEPATH.\'/cool_framework/plugins/cool_widgets.php\';
include_once TEMPLATEPATH.\'/cool_framework/plugins/sidebar_generator.php\';
include_once TEMPLATEPATH.\'/cool_framework/cool_comments.php\';
include_once TEMPLATEPATH.\'/cool_framework/cool_functions.php\';
include_once TEMPLATEPATH.\'/cool_framework/cool_navigation.php\';
include_once TEMPLATEPATH.\'/cool_framework/cool_panel/cool_panel.php\';
include_once TEMPLATEPATH.\'/cool_framework/cool_shortcodes/cool_shortcodes.php\';
除了从一个完全独立的域或云存储中调用这些函数之外,是否还可以这样做?如果是,我能预料到的问题是什么?

2 个回复
最合适的回答,由SO网友:Jeremy Jared 整理而成

如果您的函数可以放在单个文件中(没有图像或链接的js/css文件),您可以将它们添加到mu插件文件中。看到了吗Must Use Plugins page on Codex 了解更多信息。

示例:

<?php
/*
Plugin Name: CommonCodes
Plugin URI: http://you.com/
Description: A common use file
Version: 1.0
Author: You
Author URI: http://you.com/
*/

function remove_dashboard_widgets() {
    global $wp_meta_boxes;
    unset($wp_meta_boxes[\'dashboard\'][\'side\'][\'core\'][\'dashboard_quick_press\']);
    unset($wp_meta_boxes[\'dashboard\'][\'normal\'][\'core\'][\'dashboard_incoming_links\']);
    unset($wp_meta_boxes[\'dashboard\'][\'normal\'][\'core\'][\'dashboard_right_now\']);
    unset($wp_meta_boxes[\'dashboard\'][\'normal\'][\'core\'][\'dashboard_plugins\']);
    unset($wp_meta_boxes[\'dashboard\'][\'normal\'][\'core\'][\'dashboard_recent_drafts\']);
    unset($wp_meta_boxes[\'dashboard\'][\'normal\'][\'core\'][\'dashboard_recent_comments\']);
    unset($wp_meta_boxes[\'dashboard\'][\'side\'][\'core\'][\'dashboard_primary\']);
    unset($wp_meta_boxes[\'dashboard\'][\'side\'][\'core\'][\'dashboard_secondary\']);
}
if (!current_user_can(\'manage_options\')) {
    add_action(\'wp_dashboard_setup\', \'remove_dashboard_widgets\' );
}

function all_settings_link() {
    add_options_page(__(\'All Settings\'), __(\'All Settings\'), \'administrator\', \'options.php\');
}
    add_action(\'admin_menu\', \'all_settings_link\');

?>
然后将其另存为commonfunctions.php 或者别的什么。在中创建文件夹wp-content 调用的目录mu-plugins 并将单个PHP文件放在该文件夹中。它将自动激活,并且无法从WP管理区域中删除。

您可能面临的任何问题都取决于插件或主题,这些插件或主题可能会重复使用相同的功能,从而导致冲突。

SO网友:mrwweb

我想看看this article 关于如何更新自托管插件。这将允许您设置功能。php作为一个功能插件,然后将其托管在一个地方,并将更新推送到所有站点。您仍然需要访问每个站点并对其进行更新,但我认为这仍然会比您当前的设置有所改进。

您还可以考虑为插件创建一组选项,用于打开和关闭函数集。然后,您可以只使用一个插件,其中包含所有功能,然后在每个站点上打开和关闭这些功能。

=====

编辑:事实证明,甚至有一个插件可以帮助处理自托管插件。它叫。。。等待它。。。Self Hosted Plugins. 我没有使用过它,所以我不能担保它,但如果上面的教程没有成功的话,它可能值得一看。

结束

相关推荐

在我网站的不同部分使用不同大小的缩略图...使用Functions.php?

两年前,在StackOverflow中,有一个有趣的问题,关于在站点的不同部分使用特定的缩略图、小型、中型或大型图像。问题是,available here, 是well answered 其中一位用户Doug Neiner建议使用以下代码:<?php function get_attached_images(){ // This function runs in \"the_loop\", you could run this out of the loop but&#x