私は現在、カスタム登録フォームを作成することを含むプロジェクトに取り組んでいます。送信後のこのフォームは、ユーザーデータをwp usersテーブルに追加してから、ユーザーIDをwp optionsテーブルに挿入します。登録したすべてのユーザーを見ることができます。しかし、すべてのユーザーをリストしたテーブルをカスタマイズしてカスタムフィールドを表示します。また、ユーザーをアクティブにするために使用できるリンクもあります(wp optionsテーブルで設定されているフィールドをtrueに変更する)。
助けが必要です
質問の最初の部分では、usersテーブルに新しい列を追加できます。
その手順は2つあります。最初に列を登録し、次に各行の情報を出力する必要があります。
新しい列を追加するには、manage_users_columns
フィルタにフックします。
function yourdomain_manage_users_columns( $columns ) {
// $columns is a key/value array of column slugs and names
$columns[ 'custom_field' ] = 'Custom Field';
return $columns;
}
add_filter( 'manage_users_columns', 'yourdomain_manage_users_columns', 10, 1 );
それからmanage_users_custom_column
フィルタを使ってあなたのカスタムフィールドを出力する必要があります:
function yourdomain_manage_users_custom_column( $output, $column_key, $user_id ) {
switch ( $column_key ) {
// look for the slug you registered
case 'custom_field' :
// get your custom field, parse it however you want
$value = get_user_meta( $user_id, 'custom_field', true );
// return the value
return $value;
break;
default: break;
}
// if no column slug found, return default output value
return $output;
}
add_filter( 'manage_users_custom_column', 'yourdomain_manage_users_custom_column', 10, 3 );
ユーザーアクティベーションに関して:
WP_optionsテーブルは、それが急速に成長し、あなたのウェブサイトを維持するのが困難になるので、それを実行するための最良の方法ではないかもしれません。
アクティブになっていないユーザー用に新しいユーザーロールを作成し、それをデフォルトとして設定することができます。これは管理者インターフェースを通して簡単に変更できます。
あなたがプラグインを介してこのコードを追加しているならば、あなたはそうするかもしれません:
function yourdomain_add_user_role() {
// capabilities
$caps = array(
'level_0' => true, // inherit subscriber capabilities
'read' => false // but can't read posts, etc
);
// ads the inactive user role
add_role(
'inactive', // Role slug
'Inactive Account', // Role name
$caps // capabilities
);
}
register_activation_hook( __FILE__, 'yourdomain_add_user_role' );
ユーザーの役割と機能の(長い)リストについてはコーデックスを見てください。 https://codex.wordpress.org/Roles_and_Capabilities
それが役立つことを願っています!