Wordpress SEO - Czego szukasz?

Jeżeli szukasz odpowiedzi na pytania związane z SEO lub Wordpressem wpisz frazę i czekaj na podpowiedzi lub kliknij enter! Wyniki pokazują także linki do zewnętrznych źródeł.

193 artykułów w bazie

Ochrona przed spamem w WordPress bez wtyczek


[ SEOWind.io - pisz treści które rankują się w TOPach ]

stop-spam-wp

Spam to pewnie najgorsza rzecz wraz po włamaniach z którą spotykają się użytkownicy WordPress. Na obecną chwilę istnieje wiele różnych sposobów ochronić stronę od spamu. Ale większość z nich wiążę się z instalacją dodatkowych wtyczek. Jeśli nie jesteście Państwo zwolennikami takiego podejścia do rozwiązania problemu (fakt, że każda dodatkowa wtyczką zwiększa czas ładowania strony), proponujemy proste wyjście. Wystarczy wprowadzić kilak zmian do pliku funkcje motywów aby zapomnieć o reklamowych komentarzy dodawanych przez różne skrypty spamerskie.

Podane rozwiązanie polega na tym, że ukrywamy prawdziwe pole wpisywania komentarza comment i zastępujemy go nowym polem ‘real-comment. Dla odwiedzających blogu wszystko pozostanie bez zmian i one nie zauważą żadnej różnicy na stronie. Jednak skrypty spamowe spróbują wypełnić standardowe pole komentarza ze standardową nazwą comment. Sęk w tym, że skrypt nie będzie w stanie zrozumieć, że proponowane pole jest niewidoczne dla odwiedzających. W rezultacie jego wypełnienie powoduje uznanie wypełniającego za „automat” i przenosi go na stronę z powiadomieniem „Stop spam”.

Dlatego aby wprowadzić odpowiednie zmiany należy zmodyfikować plik functions.php motywu używanego domyślnie. Skorzystamy się dlatego z standardowego edytora WordPress, który znajduje się w sekcji Wygląd. Za pomocą tego edytora otworzymy plik funkcje motywu (rys. 1):

Rysunek 1. Modyfikacja pliku functions.php

Na końcu tego pliku wstawimy poniższy kod:

//dodajemy pole 'real-comment' start
function wph_add_new_comment_field($args) {
 
    if (preg_match('/<textarea.*textarea>/', $args['comment_field'], $match)){
        $textarea = $match[0];
        $real_textarea = str_replace('comment', 'real-comment', $textarea, $count);
 
        if ($count) {
            $hidden_textarea = str_replace( '<textarea', 
            '<textarea style="display:none;"', $textarea );
            $args['comment_field'] = str_replace($textarea, 
            "$hidden_textarea$real_textarea", $args['comment_field']);
        }
    }
    return $args;
}
add_filter('comment_form_defaults', 'wph_add_new_comment_field', 30);

Dzięki temu kodu na stronie dodawania komentarzy będą dostępne 2 identyczne pola do wpisywania komentarzy o różnych nazwach. Przy tym standardowe pole commentjest ukryte przed oczami odwiedzających i one nie mogą go w żaden sposób wypełnić.

Teraz dodamy kod, który będzie sprawdzać czy jest wypełnione pole comment. Gdy tak, wiadomość będzie uznana za spam i otworzy się nowa strona z komunikatem „Stop spam”:

//sprawdzenie na spam
function wph_verify_spam() {
    if(false === strpos($_SERVER['REQUEST_URI'], 'wp-comments-post.php'))
        return; 
    if(!empty($_POST['comment']))
        wp_die('Stop spam');
 
    $_POST['comment'] = $_POST['real-comment'];
}
add_filter('init', 'wph_verify_spam');

Po zapisywaniu wszystkich zmian przechodzimy na stronę z wpisem (rys. 2).

Rysunek 1. Modyfikacja pliku functions.php

Jak widać z rysunku 2 dla użytkownika nic się nie zmieniło. Formularz komentarzy ma takie same pola jak i dopiero. Po ich wypełnieniu komentarz będzie oczekiwał na moderację (rys. 3). Jeśli macie Państwo inne ustawienia w sekcji Dyskusja, on może być już dodany.

Rysunek 3. Oczekiwania komentarzy na moderację

Dlatego aby sprawdzić, że wprowadzone zmiany działają poprawnie należy w pole  ‘<textarea style=”display:none;”‘, $textarea ); usunąć znaczenie display:none;. Po zapisywaniu zmian otrzymamy następny rezultat (rys. 4):

Rysunek 4. 2 pola do wpisywania komentarza

Jak widać z rysunku 4 na stronie pojawiły się 2 jednakowe pola do wpisywania komentarza. Pierwsze ma nazwę comment i będzie używane przez skrypty. Po automatycznym wypełnieniu pół pojawi się komunikat (rys. 5):

Rysunek 5. Powiadomienie o ochronie od spamu

Powyższy rezultat sprawia, że wprowadzony kod działa poprawie.

Podsumowanie

Podane rozwiązanie pozwala Państwu zapomnieć o spamie rozsyłanym za pomocą skryptów. Nie musicie sprawdzać sekcję Komentarzy i wyszukiwać wśród nich spam. Nie będziecie nawet dostawać powiadomień o komentarzach spamowych. To jest wielką zaletą, zwłaszcza, gdy wcześniej mieliście setki takich wiadomości dziennie. Do innych zalet warto odnieść stabilność działania kodu po odnowieniach systemu oraz templatek.  Dlatego jeśli jeszcze zastanawiacie nad wyborem efektywnego rozwiązania, na pewno muście zwrócić uwagę na powyższy kod.

P.S. Korzystam się z tego rozwiązania w ciągu kilku miesięcy. Używam go razem z Akismet. Przez ten czas nie dostałem żadnego komentarza o viagrze, kredytach itd.

O Janusz Kamiński

Specjalista działu marketingu firmy TemplateMonster. W branży IT pracuje od 5 lat. Posiada doświadczenie w SEO, marketingu internetowym. Oprócz tego interesuje się projektowaniem internetowym.
  • Linki Wewnętrzene i Sematyka

  • Budowanie linków
  • Sematyka
  • Budowanie linków nigdy nie było prostrze. Setki możliwości linków za jednym kliknięciem.
  • SEMRush

  • Profesjonalna platforma SEO
  • Online
  • SEMrush oferuje rozwiązania dla SEO, PPC, treści, mediów społecznościowych i badań konkurencyjnych.