マルチサイトプラグインの「グローバル」設定ページ


24

私は、マルチサイトインスタンスにインストールされるプラグインに取り組んでいます。

「ネットワーク管理者」レベルでのみ表示される単一の設定ページを作成する方法-私が見たガイドのほとんどは、標準のブログレベルプラグインに関連しています。情報へのリンクは役に立つでしょう。そうでなければ、サイト全体のタグを調べて、そこでどのように行われているかを確認するだけです。

[更新]

sitewide_tags はadd_site_optionget_site_optionおよびを使用し、update_site_optionこれらの関数はwp_sitemetaを使用しているようです。ただし、私が見ることができることから、register_setting、add_settingなどのサポートはないため、オプションを手動で取得および設定する必要があります。

回答:


6

参考として

ネットワークまたはグローバル設定を作成するには、次を実行する必要があります

  • 設定ページを追加する

    add_submenu_page( 'settings.php'... # cf options.php for blog level`
  • グローバルオプションを追加する

    add_site_option($key,$value)
  • グローバルオプションを更新する

    update_site_option($key,$value)
  • サイトオプションを取得する

    get_site_option($key)

グローバル設定はsitemetaテーブルに保存されます(個々のブログ設定は<blog_id>_optionsテーブルに保存されます

  • Settings APIはブログレベルで機能すると思います-そのため、sitemetaではなくオプションテーブルを使用します。そのため、ネットワークレベルでオプショングループなどを使用することはできません(これが間違っている場合はコメントしてください

0

まあ、私は最近同じニーズに直面しましたが、答えも知りませんでした。あなたの質問に対する明確な答えではありませんが、代替手段は、「メイン」ブログのオプションの下にオプションページを作成し、マルチサイトが有効になっているかどうかを確認することです。

理想的な方法ではありませんが、(私のように)自分で使用するための内部プラグインを作成しているだけであれば、それは実行可能です。また、管理ページのすべての通常の機能を使用できるという利点もあります。これらは、グローバルネットワーク管理ページのコンテキストにはまだありません。


0

あなたが使用している場合add_submenu_page()add_menu_page()などと設定ページがあなたのマルチサイトのダッシュボードに表示されることを期待し、使用することを検討してnetwork_admin_menuフックを代わりにadmin_menu

例:

add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
    add_submenu_page(

        ...
    )
}

設定を保存するには、network_admin_edit_{ACTION}アクションフックを使用できます。

参照:https : //rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.