自分のネットワーク内のサイトにメタフィールド(サムネイルやカテゴリなど)を追加したい。 get
/ add
/ update_site_option
を使用してこれを行う方法を知っていますが、これらのメタフィールドを管理するためのUIをどこに置くことができるのでしょうか。
最も良い場所は、サイトの属性のすぐ後の Sites> Infos ページにありますが、私はハングするフックを見つけることができません。私は同じ画面の "Settings"タブにそれらのフィールドを追加することができますが、それを見つけるためにたくさんスクロールダウンしなければなりません、そしてそれは高度な設定と混合されます。
なにか提案を ?
私はついにSites> Infosテーブルにさらに行を追加する方法を見つけました:
ちょっと見苦しいですが、うまくいきます。私は単純にアクションadmin_footer
を使ってページの最後にたくさんのHTMLコードを追加し、次にjQueryを使ってそれを正しい場所に移動します。
add_action('admin_footer', 'user16975_custom_options');
function user16975_custom_options(){
global $pagenow;
if( 'site-info.php' == $pagenow ) {
?><table><tr id="user16975_custom_options">
<th scope="row">My own option</th>
<td><input type="text"/></td>
</tr></table>
<script>jQuery(function($){
$('.form-table tbody').append($('#user16975_custom_options'));
});</script><?php
}
}
良いところは、フックが利用可能になるとすぐに、コードを大きく変更することなく使用できることです。
まず第一に - 私は同意しました、そこにカスタム設定フィールドを作成することを可能にするコアのこの部分には特別なフックはありません。しかしとにかくそれは可能です。
WordPressはあなたのカスタムタブを作成することを可能にするnetwork_edit_site_nav_links
filter hookを持っています。
しかし、新しいタブのページにフックはありませんが、単純なオプションページと小さなCSSコードで結果を達成できるため、問題にはなりません。
このチュートリアルではすべてを手順で説明しています https://rudrastyh.com/wordpress-multisite/custom-tab-with-options.html (ここからすべてのコードをこのスレッドにコピーするのは理由ではないと思います) ).
サイト情報管理ページのコードはこちらです: http://core.trac.wordpress.org/browser/trunk/wp-admin/network/site-info.php
残念ながら、site-info.php
コードにはフックやフィルタはありません。
wp-admin
コードを処理するには、おそらく{$verb}_site_option
Settingsメニューに - あなた自身の管理ページを作成する必要があるようです。