はじめに
現在、WordPress で Webサービスを構築中です。6日間の期限付き使用で、その際に、サーバーを1人のユーザが登録したら占有させたいと思い、option_users_can_register というフィルターを使いました。日本語で検索しても出てこないので、入用な方もいるかもしれないと思い書きます。
使い方
投稿者権限で、登録されたメタ情報を探して、それがあれば制限するという事をしています。
add_filter( 'option_users_can_register', 'limit_capa_users' );
function limit_capa_users( $option ) {
if ( FALSE === $option ) return $option;
global $wpdb;
$wp_capa = 'wp_capabilities';
$author = '%%author%%';
$user_id = $wpdb->get_var($wpdb->prepare("SELECT user_id
FROM $wpdb->usermeta
WHERE meta_key = %s
AND meta_value LIKE %s"
, $wp_capa, $author));
if ( $user_id ) return FALSE;
return $option;
}
その他
ユーザー数を登録数で制限させるような事もできます。以下の例ですと100名以上のユーザー登録で制限されます。
add_filter( 'option_users_can_register', 'limit_capa_user_count' );
function limit_capa_user_count( $option ) {
if ( FALSE === $option ) return $option;
global $wpdb;
$user_count = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");
$limit = 100;
if ( $user_count > $limit ) return FALSE;
return $option;
}
コメントを残す