私はマルチサイトインスタンスにインストールされるプラグインに取り組んでいます。
「ネットワーク管理者」レベルでのみ表示される単一の設定ページを作成するにはどうすればよいですか。私がこれまで見たほとんどのガイドは標準のブログレベルのプラグインに関するものです。情報へのリンクがあれば便利ですが、そうでなければ、サイト全体のタグを調べて、それがどのように行われているのかを確認します。
[更新]
Sitewide_tagsはadd_site_option
、get_site_option
およびupdate_site_option
を使用し、これらの関数はwp_sitemetaを使用します。しかし、私が見ることができるものから、register_setting、add_settingなどのサポートはないので、あなたは手動であなたのオプションを取得して設定しなければなりません。
参考として
ネットワーク設定またはグローバル設定を作成するには、次の手順を実行する必要があります。
設定ページを追加する
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
テーブルに保存されます)
add_submenu_page()
、add_menu_page()
etcを使用していて、マルチサイトダッシュボードに設定ページが表示されることが予想される場合は、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-tab-with-options.html
さて、私は最近同じニーズに直面しましたが、その答えも知りませんでした。あなたの質問に対する明確な回答ではありませんが、代わりに「メイン」ブログのオプションの下にオプションページを作成し、マルチサイトが有効になっているかどうかを確認することもできます。
理想的な方法ではありませんが、(私のように)あなたがあなた自身の使用のための内部プラグインを作成していただけなら、それは実行可能です。それはまた管理ページのためのすべての通常の機能が利用可能であるという利点を持っています - それらはまだグローバルネットワーク管理ページコンテキストにはありません。