Maison > Tutoriel CMS > WordPresse > Comment ajouter une fonctionnalité anti-spam à votre plugin WordPress

Comment ajouter une fonctionnalité anti-spam à votre plugin WordPress

WBOY
Libérer: 2023-09-06 11:31:45
original
1523 Les gens l'ont consulté

Comment ajouter une fonctionnalité anti-spam à votre plugin WordPress

Comment ajouter une fonction de prévention du spam au plug-in WordPress

Dans le processus d'utilisation de WordPress pour créer un site Web, nous rencontrons souvent le problème des commentaires indésirables. Non seulement les commentaires indésirables occupent de l'espace dans la base de données, mais ils peuvent également avoir un impact négatif sur la réputation de notre site. Pour résoudre ce problème, nous pouvons ajouter une fonctionnalité de prévention du spam aux plugins WordPress. Cet article décrit une méthode simple mais efficace et fournit des exemples de code correspondants.

Tout d'abord, nous devons créer une fonction pour filtrer les commentaires. Dans WordPress, il existe une fonction hook appelée pre_comment_approved qui peut être utilisée pour filtrer les commentaires avant qu'ils ne soient enregistrés dans la base de données. Grâce à cette fonction de hook, nous pouvons écrire une logique personnalisée pour déterminer si un commentaire est un commentaire de spam et définir le statut correspondant. pre_comment_approved的钩子函数,可以用于在评论被保存到数据库之前对其进行过滤。通过这个钩子函数,我们可以编写自定义的逻辑来判断评论是否为垃圾评论,并设置相应的状态。

以下是一个示例函数,在评论保存之前判断是否为垃圾评论,并设置状态为待审核:

function filter_comment( $approved, $commentdata ) {
    // 判断评论是否为垃圾评论的逻辑
    if ( your_spam_detection_logic() ) {
        $approved = '0'; // 设置状态为待审核
    }
    return $approved;
}
add_filter( 'pre_comment_approved', 'filter_comment', 10, 2 );
Copier après la connexion

在上面的代码中,我们通过调用your_spam_detection_logic()函数来判断评论是否为垃圾评论。这个函数需要根据实际需求来编写,可以使用一些常见的垃圾评论特征,比如链接数量、敏感词汇、重复内容等等。如果评论被判定为垃圾评论,我们将状态设置为待审核(即$approved = '0')。

为了使用这个函数,我们需要将代码添加到自己的插件文件中,或者使用一个自定义功能插件。将上述代码添加到插件文件中后,WordPress将会在评论保存之前,调用这个函数来过滤评论。

除了过滤评论,还可以添加其他的垃圾评论防护措施。比如,可以使用Google reCAPTCHA来添加验证码验证功能。下面是一段实现Google reCAPTCHA功能的示例代码:

function add_recaptcha_to_comment_form() {
    if ( your_recaptcha_verification_logic() ) {
        // 显示Google reCAPTCHA
        echo '<div class="g-recaptcha" data-sitekey="your_recaptcha_site_key"></div>';
    }
}
add_action( 'comment_form_after_fields', 'add_recaptcha_to_comment_form' );

function verify_recaptcha( $approved, $commentdata ) {
    // 验证Google reCAPTCHA
    if ( your_recaptcha_verification_logic() ) {
        $response = $_POST['g-recaptcha-response'];
        $recaptcha_secret_key = 'your_recaptcha_secret_key';
        $verify_url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = array(
            'secret' => $recaptcha_secret_key,
            'response' => $response
        );
        $options = array(
            'http' => array(
                'method' => 'POST',
                'header' => "Content-Type: application/x-www-form-urlencoded
",
                'content' => http_build_query( $data )
            )
        );
        $context = stream_context_create( $options );
        $result = file_get_contents( $verify_url, false, $context );
        $result = json_decode( $result );
        if ( ! $result->success ) {
            wp_die( 'reCAPTCHA验证失败,请重新填写。' );
        }
    }
    return $approved;
}
add_filter( 'pre_comment_approved', 'verify_recaptcha', 10, 2 );
Copier après la connexion

在上面的代码中,我们在评论表单后添加了Google reCAPTCHA。通过调用your_recaptcha_verification_logic()

Ce qui suit est un exemple de fonction qui détermine si un commentaire est du spam avant de l'enregistrer et définit le statut sur en attente de révision :

rrreee

Dans le code ci-dessus, nous déterminons en appelant la your_spam_detection_logic() function Indique si le commentaire est du spam. Cette fonction doit être écrite en fonction des besoins réels et peut utiliser certaines caractéristiques courantes des commentaires de spam, telles que le nombre de liens, les mots sensibles, le contenu en double, etc. Si un commentaire est déterminé comme spam, nous définissons le statut sur en attente (c'est-à-dire $approved = '0'). 🎜🎜Pour utiliser cette fonction, nous devons ajouter le code à notre propre fichier de plug-in ou utiliser un plug-in de fonction personnalisé. Après avoir ajouté le code ci-dessus au fichier du plugin, WordPress appellera cette fonction pour filtrer les commentaires avant de les enregistrer. 🎜🎜En plus de filtrer les commentaires, vous pouvez également ajouter d'autres mesures de protection contre le spam. Par exemple, vous pouvez utiliser Google reCAPTCHA pour ajouter une fonctionnalité de vérification du code de vérification. Voici un exemple de code qui implémente la fonctionnalité Google reCAPTCHA : 🎜rrreee🎜 Dans le code ci-dessus, nous avons ajouté Google reCAPTCHA après le formulaire de commentaire. Déterminez si le code de vérification doit être affiché en appelant la fonction your_recaptcha_verification_logic(). Si un code de vérification doit être affiché, nous vérifions le code avant que le commentaire ne soit enregistré pour garantir que le commentaire provient d'un utilisateur réel. 🎜🎜Ce qui précède est une façon d’ajouter une fonctionnalité anti-spam à votre plugin WordPress. Grâce à des fonctions personnalisées et des crochets de filtrage, nous pouvons juger et gérer les commentaires indésirables en fonction de nos propres besoins. Dans le même temps, la sécurité des commentaires peut être encore améliorée en introduisant des mécanismes de vérification tels que Google reCAPTCHA. J'espère que cet article vous aidera ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal