自分の役割でユーザーの投稿を(一定期間内に)制限する方法/プラグインはありますか?
このような:
- ロールA - > 1日1回の投稿と合計30件の投稿。
- 役割B - 1日あたり10件以上、合計100件の投稿。
- ロールC - >無制限.
これらの機能を持つプラグインがいくつかあることを私は知っていますが、それらは1日あたりの制限投稿数または役割基本上の投稿数制限のいずれかを制御することができるだけです。
注:これは real Estate プラットフォームが無効化されるのを防ぐためです。 (編集者注)
何か案は?
私のプラグインを使うことができます 投稿作成制限 役割ごと、投稿タイプごと、投稿ごとのステータス制限システムを持ち、そのpost_creation_limits_custom_checks
アクションフックと組み合わせて、その日その投稿がすでに作成されているか確認する - もしそうなら:「限界に達したメッセージ」を表示しなさい。例えば:
add_action( 'post_creation_limits_custom_checks', 'post_per_day_limit' );
function post_per_day_limit( $type, $user_id ) {
global $bapl,$wpdb;
// safe check: Plugin installed?
! isset( $bapl ) AND _doing_it_wrong( __FUNCTION__, sprintf( 'You need to %sinstall the needed Plugin%s', '<a href="http://wordpress.org/extend/plugins/bainternet-posts-creation-limits/">', '</a>' ), 0 );
$time_in_days = 1; // 1 means in last day
$count = $wpdb->get_var(
$wpdb->prepare("
SELECT COUNT(*)
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = %s
AND post_author = %s
AND post_date >= DATE_SUB(CURDATE(),INTERVAL %s DAY)",
$type,
$user_id,
$time_in_days
)
);
if ( 0 < $count )
$count = number_format( $count );
// here you can check since we have the $count ex:
// limit for 2 posts a day
if ( 1 < $count ) {
// return limit reached message using the plugin class
exit( $bapl->bapl_not_allowed( 'you can not posts more them two posts a day' ) );
}
// else do nothing
}
あなたは頼る必要はありません
//Limit posts per month
$time_in_days = 1; // 1 means in last day
$count = $wpdb->get_var(
$wpdb->prepare("
SELECT COUNT(*)
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = %s
AND post_author = %s
AND post_date >= DATE_SUB(CURDATE(),INTERVAL %s DAY)",
'post',
get_current_user_id(),
$time_in_days
)
);
if ( 0 < $count )
$count = number_format( $count );
// here you can check since we have the $count ex:
// limit for 2 posts a day
if ( 1 < $count ) {
// return limit reached message using the plugin class
$errors[] = 'You have reached your monthly post limit';
}
$errors
があるところはあなたがメッセージをエコーすることができるところです、私の場合私はWPユーザフロントエンドに差し込みます。
そのユーザーがif ( 1 < $count ) {}
内で正しいロールを持っているかどうかをチェックする別のifステートメントを追加するよりも、ロールでそれをしたい場合は、コードをエコーしたりエラーページにリダイレクトしたりします。