[新しいサイトの追加]ページのsource codeを見ると、WordPressがこの目的のためのフックを提供していないことがわかります。もちろん、自分でフックを追加することは可能ですが、一般的に悪い練習 WordPressのコアを編集することです。
ただし、提出されてすべての情報が存在する場合、このページは機能wpmu_create_blog()を呼び出します。
do_action('wpmu_new_blog', $blog_id, $user_id, $domain, $path, $site_id, $meta);
ブログがすでに作成されている。この時点で、この機能で呼ばれるフック、すなわちアクションwpmu_new_blog
があります。しかし、このアクションにフックしてデータベースに保存することで、フィールドが送信されたかどうかを検出できます。私たちは、プラグインファイル(またはテンプレート)に次の行を追加します。ページにフィールドを表示するよう
function add_new_blog_field($blog_id, $user_id, $domain, $path, $site_id, $meta) {
// Make sure the user can perform this action and the request came from the correct page.
switch_to_blog($blog_id);
// Use a default value here if the field was not submitted.
$new_field_value = 'default';
if (!empty($_POST['blog']['new_field']))
$new_field_value = $_POST['blog']['new_field'];
// save option into the database
update_option('new_field', $new_field_value);
restore_current_blog();
}
add_action('wpmu_new_blog', 'add_new_blog_field');
を、あなたはJavaScriptのアプローチを使用することができます。あなたは 'Add New Site'ページだけにjavascriptファイルを追加し、ページのonLoadはページの正しい位置にフィールドを挿入します。 'blog [new_field]'という名前の入力フィールドを追加する必要があります。
(function($) {
$(document).ready(function() {
$('<tr class="form-field form-required"></tr>').append(
$('<th scope="row">New field</th>')
).append(
$('<td></td>').append(
$('<input class="regular-text" type="text" title="New Field" name="blog[new_field]">')
).append(
$('<p>Explanation about your new field</p>')
)
).insertAfter('#wpbody-content table tr:eq(2)');
});
})(jQuery);
今だけの事はやって左に「追加新規サイト」のページに、このファイルが含まれている:私たちは一度ロードされ、ページの「新規サイトの追加」をに新しいフィールドを追加し、次のJavaScriptファイルを作成します、あなたのプラグインファイルにこれを追加することによって:
// Only add the script for the page site-new.php (the page hook).
add_action("admin_print_scripts-site-new.php", 'my_admin_scripts');
function my_admin_scripts() {
wp_register_script('yourScript', plugins_url('js/yourScript.js', __FILE__));
wp_enqueue_script('yourScript');
}
さらなる提案は、あなたのニーズに応じて、次のようになります、add_settings_fieldを使用して、一般的な設定ページで入力フィールドを追加し、ユーザーが後でそれを編集できるように(そしておそらく唯一のこのフィールドのデフォルト設定の場合)。このフィールドを後で変更することはできません。
私はこれがあなたが必要としていた助けと思います。
ありがとう、これは本当に素晴らしい答えです! +100の価値があります:) –
非常にいいですが、1つの小さな変更: '(空白($ _ POST ['blog'] ['new_field'])) $ new_field_value = $ _POST ['blog'] ['new_field new_fieldの空の値を考慮してください。これは正しい値として受け入れることができます – Mariyo
WP 4.5以降では、アクションフックはsite-new.phpのformタグ内に "network_site_new_form"と呼ばれています。 – Berend