راکت

کد محدود کردن کلمه در کامنت

4 پاسخ

سلام خسته نباشید من این کد رو دارم فقط میشه یه کلمه رو محدود کرد نمیشه کاری کرد که بسه چندتارو باهم محدود کرد

add_action('comment_post', 'my_comment_post_callback', 10, 3);

function my_comment_post_callback($comment_id, $comment_approved, $commentdata) {
    if (strpos($commentdata['comment_content'],'ali') !== false) {
        $post_url = get_permalink($commentdata['comment_post_ID']);
        wp_delete_comment($comment_id, true);
        wp_redirect($post_url);
        exit;
    }       
}

مثلان در کامنت نوشته باسه ali نمایش داده نمیشه ولی میخوام بیشتر محدود کنم ممنون میشم کمکم کنید

ثبت پرسش جدید

پاسخ‌ها

4
مهران مرندی
مهران مرندی
@mehranmarandi

تخصص: برنامه نویس

سلام
کلمات مورد نظر خودتون رو باید داخل یک آرایه قرار بدید و از رجکس استفاده کنید.
متد زیر این کار رو براتون میکنه

function contains($commentString, Array $blackListArray, $caseInsensitive = false) {
    $exp = '/'
        . implode('|', array_map('preg_quote', $blackListArray))
        . ($caseInsensitive ? '/i' : '/');
    return preg_match($exp, $commentString) ? true : false;
}
محمد
محمد
@mohammadafrozei1395

سلام خسته نباشید ممنون ولی من متوجه نشدم الان میخوام کلمه علی محدود بشه و کامنت خودکار حذف بشه باید کلمه علی رو بزارم کجایی این کدی که شما دادین

شاید پاسخ شما همین‌جا باشد

مهران مرندی
مهران مرندی
@mehranmarandi

تخصص: برنامه نویس

@mohammadafrozei1395
مثلا شما ميخواييد بفهميد در كامنت شما كمله Ali و چند كلمه ديگه وجود داره يا نه، اينجوري ميتونيد از متد بالا استفاده كنيد.

$comment = $commentdata['comment_content'];
$blackList = ['Ali','Reza'];
if($this->contains($comment,$blackList,true)){
    //شامل كلمات بلك ليست هست در اينجا ميتونيد كامنت رو حذف كنيد
}
محمد
محمد
@mohammadafrozei1395

@mehranmarandi
سلام ببخشید میشه کاملش کنید من کپیش کنم بزارمش تو فانکشن سایتم ممنون میشم اخه زیاد ازش سر درنمیارم

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام