WordPress登録フォームにカスタムフィールドを追加してバックエンドのユーザープロファイルに表示する方法
私はすでにそれをグーグルだが、登録プロセスではなくユーザープロファイルにそれを追加する方法を見つけるだけである。
私はこのプロセス全体を自分で経験しました。これを簡単にするためのフックなどはありません。その代わりに、それを機能させるためには「ハッキング」する必要があります。それはきれいではありませんが、それは仕事をやり遂げます。私は3つのカスタムフィールドで数ヶ月間それを使っています、そしてそれは最初から私のカスタムユーザー情報を追加することは大きな時間節約でした。
これにより、カスタムダッシュボードが管理ダッシュボードの "Add New User
"ページに追加されます。それがあなたがやろうとしていることであれば、これを公開登録ページに変換することはそれほど難しくないはずです。
このコードをすべてあなたのテーマのfunction.phpに追加してください。
手順1:[ユーザーの追加]ページにフィールドを追加します。
// Add custom field for wp-admin add user page.
// There is no filter or hook, and this is a hack, but it works.
function wpse_135622_add_new_user_custom_field_hack(){
global $pagenow;
# do this only in page user-new.php
if($pagenow !== 'user-new.php')
return;
# do this only if you can
if(!current_user_can('manage_options'))
return false;
?>
<table id="table_custom_field_1" style="display:none;">
<!-- My Custom Code { -->
<tr>
<th><label for="custom_field_1">Custom Field Label</label></th>
<td><input type="text" name="custom_field_1" id="custom_field_1" /></td>
</tr>
<!-- } -->
</table>
<script>
jQuery(function($){
//Move my HTML code below user's role
$('#table_custom_field_1 tr').insertBefore($('#role').parentsUntil('tr').parent());
});
</script>
<?php
}
add_action('admin_footer_text', 'wpse_135622_add_new_user_custom_field_hack');
もちろん、あなたが見るすべてのcustom_field_1
の名前をあなたにとって意味のあるものに変更してください。 pets_name
などです。
ステップ2:フィールドが登録フォームに表示されたので、[Add New User]をクリックしたときにデータベースに保存する必要があります。
// Save custom field
function wpse_135622_save_custom_add_new_user_field_hack($user_id){
# do this only if you can
if(!current_user_can('manage_options'))
return false;
# save my custom field
update_usermeta($user_id, 'user_custom_field_1', $_POST['custom_field_1']);
}
add_action('user_register', 'wpse_135622_save_custom_add_new_user_field_hack');
繰り返しますが、すべてのcustom_field_1
の名前を変更して、上で行ったことと一致させてください。
保存されたので、これが[管理ダッシュボード]> [ユーザー]で表示する方法です。
// Add custom fields to user profile page.
function wpse135622_show_custom_user_fields($profile_fields) {
$profile_fields['user_custom_field_1'] = 'Custom Field 1';
return $profile_fields;
}
add_filter('user_contactmethods', 'wpse135622_show_custom_user_fields');
繰り返しになりますが、custom_field_1
を使用している名前と一致させます。Custom Field 1
はユーザー管理ページに表示するラベルです。
それをまとめるとあなたが始めましょう。現在データベースに入っているので、ユーザーがログインしている場合はフロントページに表示するなど、必要なことは何でもできます。
これであなたの質問に答えた場合は、チェックマークをクリックしてそれが完了したことをマークしてください。
「ワードプレス登録フォーム」でwp-login.php?action=register
のフォームを意味する場合、 フックがあります を使用して、「電子メール」行の下にフィールドを追加できます。例えば...
add_action(
'register_form',
function() {
echo 'Here is where the hook fires';
}
);
データを保存するには、user_register
にフックします このCodexの例のように :
add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {
if ( isset( $_POST['first_name'] ) )
update_user_meta($user_id, 'first_name', $_POST['first_name']);
}
質問の詳細はほとんどないため、より具体的に説明することは困難です。