web-dev-qa-db-ja.com

複数のWordPress Webサイト間でのfunctions.phpの共有

私は自分自身が私のfunctions.phpファイルに同じWebサイトのコードの多くを使っているのに気づきました。

自分のWebサイトで使用するためのいくつかの異なる共有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'; 内の唯一のコードなので、すべての関数は他のファイルから取得されると思います。

__コード__

まったく別のドメインまたはクラウドストレージから関数を呼び出すこと以外は、このようなことが可能ですか?もしそうなら、もしあれば、私は期待できる問題は何ですか?

4
Travis Pflanz

もしあなたの関数が単一のファイル(画像やリンクされたjs/cssファイル)に入ることができるのなら、それらをmu-pluginファイルに追加することができます。詳細については、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-Admin領域から削除することはできません。

あなたが直面するかもしれないどんな問題でも衝突を引き起こす可能性がある同じ機能を再利用するかもしれないプラグインかテーマに依存するでしょう。

6
Jeremy Jared

自己ホスト型プラグインの更新方法については この記事 をご覧ください。これにより、functions.phpを機能プラグインとして設定し、それを1か所にホストして、すべてのサイトに更新をプッシュすることができます。あなたはまだそれぞれのサイトに行ってそれを更新しなければならないでしょう、しかし私はこれがあなたの現在の設定に対する改善であると思います。

また、一連の機能をオン/オフにするプラグイン用の一連のオプションを作成することを検討することもできます。それからあなたはそれからあなたがそれからサイトごとにオン/オフにするすべてのあなたの機能を持つただ一つのプラグインを持つことができます。

=====

編集:それは自己ホスティングプラグインを扱うのを助けるためにさえプラグインがあることがわかった。それは呼ばれます...それを待ってください... Self Hosted Plugins 。私はそれを使ったことがないので、それを保証することはできませんが、上記のチュートリアルがうまくいかない場合は、チェックする価値があります。

4
mrwweb