Общий доступ functions.php на нескольких сайтах WordPress


Я обнаружил, что использую многие из тех же фрагментов кода для моего файла 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';

Возможно ли что-то подобное, за исключением вызова функций из полностью отдельный домен или облачное хранилище? Если да, то какие проблемы, если таковые имеются, я могу ожидать?

Author: Community, 2012-05-07

2 answers

Если ваши функции могут храниться в одном файле (без изображений или связанных файлов js/css), вы можете добавить их в файл mu-плагина. Смотрите страницу Необходимо использовать плагины в Кодексе для получения дополнительной информации.

ПРИМЕР:

<?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-администрирования.

Любые проблемы, с которыми вы можете столкнуться, будут зависит от подключаемых модулей или тем, которые могут повторно использовать одни и те же функции, вызывающие конфликт.

 6
Author: Jeremy Jared, 2012-05-07 02:32:48

Я бы взглянул на эту статью о том, как обновить автономный плагин. Это позволит вам настроить свой functions.php в качестве функционального плагина, а затем разместить его в одном месте и отправлять обновления на все сайты. Вам все равно придется заходить на каждый сайт и обновлять его, но я полагаю, что это все равно будет улучшением по сравнению с вашей текущей настройкой.

Вы также можете рассмотреть возможность создания набора опций для плагина, который включает и выключает наборы функций. Тогда вы могли бы просто у вас есть один плагин со всеми вашими функциями, которые вы затем включаете и выключаете для каждого сайта.

=====

РЕДАКТИРОВАТЬ: Оказывается, есть даже плагин, помогающий работать с плагинами для самостоятельного размещения. Это называется...подожди этого... Автономные плагины. Я не использовал его, поэтому не могу за это поручиться, но, возможно, стоит проверить, не сработает ли вышеприведенный учебник.

 4
Author: mrwweb, 2012-05-09 00:21:26