web-dev-qa-db-ja.com

全ユーザーページにカスタムフィールドを追加する方法

私は現在、カスタム登録フォームを作成することを含むプロジェクトに取り組んでいます。送信後のこのフォームは、ユーザーデータをwp usersテーブルに追加してから、ユーザーIDをwp optionsテーブルに挿入します。登録したすべてのユーザーを見ることができます。しかし、すべてのユーザーをリストしたテーブルをカスタマイズしてカスタムフィールドを表示します。また、ユーザーをアクティブにするために使用できるリンクもあります(wp optionsテーブルで設定されているフィールドをtrueに変更する)。
助けが必要です

1

質問の最初の部分では、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

それが役立つことを願っています!

1
Pedro Coitinho