Filtern Sie das Feld für den Benutzernamen bei der Registrierung nach Obszönitäten und unerwünschten Wörtern


7

Wie füge ich dem Feld Benutzername einen Filter hinzu, um zu verhindern, dass sich neue Benutzer mit unerwünschten Wörtern wie administratoroder allgemeiner Obszönität registrieren ?

Idealerweise, wenn ich eine große Liste von Wörtern hinzufügen könnte, die mit der Option blockiert sind, ein Sternchen (*) als Platzhalter hinzuzufügen genitals*.

Antworten:


7

Es gibt zwei sehr unterschiedliche Haken, die Sie je nach Installation verwenden können:

  • wpmu_validate_user_signup für Multi-Site und
  • registration_errors für Single-Site.

Der folgende ungetestete Code zeigt, wie sie verwendet werden. Sie können das Array user_name_is_forbidden()an Ihre Bedürfnisse anpassen . Verwenden Sie reguläre Ausdrücke für die Übereinstimmungen.

// multi-site
add_filter( 'wpmu_validate_user_signup', function( $result )
{
    // there is already an error
    if ( $result['errors']->get_error_message('user_name') )
        return $result;

    if ( user_name_is_forbidden( $result['user_name'] ) )
        $result['errors']->add('user_name',  __( 'That username is not allowed.' ) );

    return $result;
});

//single-site
add_filter( 'registration_errors', function( $errors, $name )
{
    if ( user_name_is_forbidden( $name ) )
        $errors->add('user_name',  __( 'That username is not allowed.' ) );
    return $errors;
}, 10, 2);


function user_name_is_forbidden( $name )
{
    // If you need the character '~', write it as '\~'.
    $forbidden = array(
        'admin.*',
        'genitals.*',
        'system.*'
    );

    return (bool) preg_match( '~' . join( '|', $forbidden ) . '~i', $name );
}

3
Seien Sie vorsichtig, welche "schlechten Wörter" -Filter Sie verwenden. Einige Leute mögen "Shitake" -Pilze. Oder sind Fans von "klassischer" Musik. Oder kommen Sie von einem Ort namens "Scunthorpe".
Otto

6
@Otto Oder sie sind aus Essex. :)
Fuxia

Das war teuflisch! Funktioniert super toscho!
Christine Cooper

3
Christine, ich frage mich wirklich , wie viel von Ihrer Plattform Toscho bereits gebaut hat: D
kaiser

@Otto Eine lustige Kleinigkeit. Wir haben gerade Registrierungen geöffnet und ein neuer Benutzer hat sich bei "ScatArt * ..." registriert. Gerade als wir auf die Sperrschaltfläche geklickt haben, haben wir die E-Mail-Adresse des Benutzers gegoogelt und es scheint, dass es sich um eine echte Registrierung handelt, kein Trolling. Als ob!!
Christine Cooper
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.