publikacja: 19 października 2011, autor: , komentarzy 39 https://wpninja.pl/artykuly/dodatkowe-pola-w-formularzu-komentarzy-wordpress/

Dodatkowe pola w formularzu komentarzy WordPress

Dodatkowe pola w formularzu komentarzy WordPress

Formularz komentarzy, który można znaleźć na większości stron opartych o WordPress zawiera standardowy zestaw pól - podpis, email oraz stronę WWW. Nic nie stoi jednak na przeszkodzie, aby rozbudować go o dodatkowe pola, na przykład nazwę firmy lub numer Gadu-Gadu.

Zanim zaczniemy

W starszych wersjach WordPress (do 2.9) jedyną metodą na wstawienie formularza komentarzy było wpisanie całego kodu do pliku comments.php. Była to mało elastyczna metoda, więc wraz z wersją 3.0 wprowadzono innowację w postaci funkcji comment_form, która wstawia formularz oraz wykonuje za nas dodatkowe czynności, m.in. sprawdza czy:

  • komentowanie jest włączone,
  • komentarze są otwarte czy zamknięte,
  • użytkownik jest zalogowany,
  • komentowanie wymaga logowania.

W wielu motywach można jednak spotkać się jeszcze z poprzednią, przestarzałą już metodą wstawiania formularza komentarzy. W takim motywie fragment odpowiedzialny za wyświetlanie formularza rozpoznasz łatwo, wygląda on mniej więcej tak:

<?php if (comments_open()) : ?>
<div id="respond">
  <h3><?php comments_number('No Responses','One Response','% Responses');?></h3>
  <?php /* kod PHP i HTML generujący formularz */ ?>
</div>
<?php endif; ?>

Aby rozszerzyć formularz o kolejne pola według poniższej instrukcji, musisz upewnić się, że szablon którego używasz wykorzystuje funkcję comment_form. Wystarczy, że zajrzysz do pliku comments.php i wyszukasz frazę comment_form. Jeśli zamiast niej, znajdziesz tam kod z przykładu powyżej, po prostu zaznacz cały ten fragment i zastąp go jedną linijką:

<?php comment_form(); ?>

Funkcja comment_form przyjmuje dwa parametry, jej ogólna składnia wygląda tak:

<?php comment_form($args,$post_id); ?>

Pełna lista dostępnych parametrów, akcji oraz filtrów znajduje się w oficjalnej dokumentacji.

W praktyce z funkcji comment_form można korzystać na dwa sposoby. Pierwszy polega na wywołaniu funkcji bezpośrednio z wybranymi argumentami w pliku comments.php, np. tak:

<?php comment_form(array('title_reply'=>'Zostaw komentarz')); ?>

Druga metoda polega na wykorzystaniu jednego lub kilku dostępnych filtrów. Właśnie z tej metody skorzystamy w niniejszym poradniku.

Wstawienie dodatkowego pola w formularzu

Zaczniemy od wyświetlenia dodatkowego pola w formularzu. W tym celu skorzystamy z jednego z dostępnych filtrów – comment_form_defaults. Poniższy kod powinien znaleźć się w pliku functions.php:

add_filter('comment_form_default_fields','new_comment_form_default_fields');

function new_comment_form_default_fields($fields) {
   $fields['gg'] = '<p class="comment-form-gg"><label for="gg">'. __('Numer GG').'</label><input id="gg" type="text" name="gg" value="" size="30" /></p>';
   return $fields;
};

W powyższym fragmencie kodu zdefiniowaliśmy sobie nowe pole, a w zmiennej $fields[’gg’] umieściliśmy kod HTML odpowiedzialny za wyświetlenie pola o nazwie „Numer GG”. Struktura elementów HTML jest zaczerpnięta z domyślnego sposobu ich wyświetlania dla standardowych pól formularza (podpis, email, strona WWW) w motywie TwentyEleven.

Po wykonaniu powyższego kroku, powinieneś już widzieć dodatkowe pole „Numer GG” w formularzu komentarzy. W szablonie TwentyEleven wygląda to tak:

Wygląd formularza komentarzy dla użytkowników nie zalogowanych

Wygląd formularza komentarzy dla użytkowników niezalogowanych

Sposobów na wstawienie dodatkowych pól jest więcej. Metoda opisana powyżej ma jeden minus, który dla niektórych może okazać się istotny. Chodzi o to, że wstawione w ten sposób pola nie będą widoczne dla zalogowanych użytkowników (podobnie jak to ma miejsce w przypadku pól podstawowych – podpis, email, strona WWW).

Istnieje oczywiście możliwość obejścia tego ograniczenia. W tym celu skorzystamy z akcji comment_form_logged_in_after, która jest uruchamiana dla zalogowanych użytkowników, oraz comment_form_after_fields, która pozwoli nam wstawić pole tytuł tuż po standardowych polach formularza komentarzy. Kod wygląda nastepująco:

add_action('comment_form_logged_in_after','gg_comment_form_field');
add_action('comment_form_after_fields','gg_comment_form_field');

function gg_comment_form_field() {
?>
   <p class="comment-form-gg">
      <label for="gg"><?php _e('Numer GG'); ?></label>
      <input id="gg" name="gg" size="30" type="text" />
   </p>
<?php
};

Kod z obu przykładów wygeneruje identyczny formularz, z polem „Numer GG” tuż pod polem „Strona WWW”. Dla zalogowanych użytkowników, formularz wygląda tak:

Wygląd formularza komentarzy dla użytkowników zalogowanych

Wygląd formularza komentarzy dla użytkowników zalogowanych

Zapisywanie danych do bazy

Kolejny krok polega na zapisaniu danych wprowadzonych w polu „Numer GG” do bazy danych, aby móc je później wyświetlić. W bazie danych znajdą się one w tablicy wp_commentmeta.

add_action('comment_post','save_comment_meta_data');

function save_comment_meta_data($comment_id) {
   $gg = (int) $_POST['gg'];
   update_comment_meta($comment_id,'gg',$gg);
};

Zwróć uwagę na 4 linijkę kodu. Ponieważ mamy tutaj do czynienia z danymi wprowadzanymi przez użytkownika, warto zadbać o ich walidację. W naszym przykładzie pola „Numer GG”, oczekujemy że wprowadzony zostanie ciąg cyfr. Dlatego też dokonujemy konwersji typu aby upewnić się, że przekazywana wartość zostanie skonwertowana na liczbę. Jeśli użytkownik zamiast cyfr wprowadzi jakiś tekst lub tekst i cyfry, całość zostanie zinterpretowana jako 0 i tak też będzie zapisana w bazie danych.

W zależności od charakteru pola, powinieneś rozważyć odpowiednią jego walidację – bardziej szczegółowe informacje na ten temat znajdziesz w dokumentacji WordPress.

Wyświetlanie dodatkowych danych razem z komentarzem

Poniższy fragment kodu odpowiada za wyświetlenie numeru Gadu-Gadu tuż obok nazwy autora komentarza. Tutaj „podpinamy” się pod funkcję get_comment_author_link, modyfikując zwracaną przez nią wartość, tak aby do nazwy autora dołączony został numer Gadu-Gadu.

add_filter('get_comment_author_link','add_gg_to_author');

function add_gg_to_author($author) {
   $gg = get_comment_meta(get_comment_ID(),'gg',true);
   if ($gg) $author .= " (gg: $gg)";
   return $author;
};

W zależności od tego, gdzie chcemy wyświetlić zawartość dodatkowego pola, można skorzystać również z innych filtrów, np. comment_text aby wyświetlić zawartość pola w pobliżu (przed lub po) treścią komentarza.

Jeszcze rzut oka na efekt końcowy:

Numer Gadu-Gadu obok nazwy autora komentarza.

Numer Gadu-Gadu obok nazwy autora komentarza

Podsumowanie

Po wykonaniu tych trzech kroków w formularzu komentarzy wyświetlone zostanie dodatkowe pole „Numer GG”, a jego zawartość będzie zapisywana oraz wyświetlana razem z treścią komentarza. Mam nadzieję, że ten artykuł zainspiruje Cię i zachęci do dalszego eksperymentowania z formularzem komentarzy.

Komentarze

  1. Łukasz Więcek 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Ja to chyba jednak słabo znam WordPressa ;) Tyle lat człowiek grzebie w tym silniku, a cały czas jestem czymś zaskakiwany ;)

    odpowiedz
    1. Marcin 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      @Łukasz: polecam przegrepować źródło na frazy „do_action” i „apply_filters” wtedy dopiero złapiesz się za głowę :D, bo dużej części nawet nie ma w dokumentacji.

      odpowiedz
  2. Krzysztof Trynkiewicz z SukcesStrony.pl 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Wow, dobry art :) Chociaz niezbyt moge wymyslic, jakie pola poza nazwa firmy by sie mogly w komentarzach przydac…

    odpowiedz
    1. Ola 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Widziałam takie rozwiązanie na kilku stronach, gdzie dodatkowe pole służyło do wpisywania id Twittera, a potem było wyświetlane obok nazwy autora.
      Można również dodać np. pole tytuł – trochę w stylu forum :)

      odpowiedz
    2. Krzysztof Trynkiewicz z SukcesStrony.pl 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      A. No, ma to jakis sens :) Tytul pod katem pozycjonowania wrzucic do h3 by mozna :)
      Dzieki za odpowiedz, Olu! Przy okazji zajrzalem na Twoj blog – ciekawe masz wpisy, troche pokomentuje :)

      odpowiedz
  3. Linkdump #62: WordPress. « Tomasz Kowalczyk 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    […] Dodatkowe pola w formularzu komentarzy WordPress. Jak w tytule. :) […]

    odpowiedz
  4. Zacol 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Piszesz, że podana wyżej metoda ma jedną wadę- dodane pola nie będą widoczne dla zalogowanych użytkowników. Podajesz też sposób na obejście tego problemu, ale wydaje mi się on trochę dziwny. Nie lepiej byłoby zapisywać dodane pole (na przykład numer gg) przy rejestracji użytkownika? W końcu to, że zalogowani użytkownicy nie muszą za każdym razem wklepywać nazwy oraz loginu to plus i tak samo powinno być z dodawanym przez nas polem ;)

    odpowiedz
    1. Ola 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Artykuł jest o tym jak wstawić dodatkowe pole do formularza komentarzy. Jakie to będzie pole żależy tylko od Ciebie. Pole do podania numeru GG to tylko przykład na którym pokazuję metodę.

      odpowiedz
    2. Zacol 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Chyba się nie zrozumieliśmy ;)

      Pokazujesz jak dodać pole na przykładzie nr GG. Wszystko jest dla mnie jasne, ale w pewnym momencie dochodzisz do miejsca, w którym podajesz, że minusem tej metody jest to, że dodane pola nie będą widoczne dla zalogowanych użytkowników i pokazujesz jak obejść ten problem. To też rozumiem, ale wydaje mi się, że można to zrobić inaczej. W momencie, w którym użytkownik się rejestruje powinien podać wszystkie dane (login, adres mail oraz nasz przykładowy numer GG), które powinny być zapisane dla niego w bazie obok pozostałych danych. W ten sposób podczas komentowania nie musiałby w kółko podawać tego numeru, ponieważ byłby on odczytywany z bazy danych. W końcu po to się między innymi rejestrujemy, żeby nie musieć w kółko wklepywać loginu, maila, itd. Zresztą numer GG (wiem, że to przykład, ale w tym miejscu może być nazwa firmy lub cokolwiek innego) nie jest raczej rzeczą, która zmienia się z dnia na dzień.

      Mam nadzieję, że teraz lepiej to wyjaśniłem :)

      odpowiedz
    3. Zacol 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Inaczej mówiąc:
      a) niezalogowani użytkownicy widzą normalnie dodane przez nas do formularza pole,
      b) zalogowani użytkownicy powinni podawać je jednorazowo przy rejestracji, a jego zawartość powinna być trzymana w bazie danych. Z bazy powinna być odczytywana kiedy użytkownik się zaloguje i chce coś skomentować. W ten sposób zamieniamy minus w plus ;)

      odpowiedz
    4. Szymon Skulimowski 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Wydaje mi się, że Ola miała na myśli sytuację, w której dodatkowe pole jest unikatowe tak jak treść komentarza (choć trudno mi w tym momencie wymyślić przykład).

      odpowiedz
    5. Zacol 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Jeżeli tak to oczywiście nie da się tego zrobić moim sposobem, ale w takim razie numer GG jest złym przykładem ;p

      odpowiedz
    6. Ola 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Przykład unikatowego pola – tytuł dla komentarza.
      A w przypadku, kiedy ta dodatkowa informacja jest stała dla osoby, należało by zrobić tak jak piszesz, czyli zawrzeć ją wraz z danymi użytkownika, a dla osób które nie mają i nie chcą mieć konta na naszym blogu dodać pole w formularzu komentarzy.

      odpowiedz
    7. Zacol 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Dokładnie o to mi chodziło :)

      odpowiedz
  5. Jacek 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Super strona z super masą przydatnych rzeczy ALE… jestem kompletnie zielony jeżeli chodzi o programowanie i odnajdywanie tych linijek kodu. Tworzę szablony w Artisteer`rze i tam kod w pliku commnents wygląda zupełnie inaczej i nie wiem o co kaman.. Muszę wstawić pola KRAJ, i udało mi się ale do etapu formularza, natomiast nie wyświetlało się w panelu admina, ani w komentarzach już po opublikowaniu.. Pomóżcie laikowi..

    odpowiedz
    1. Szymon Skulimowski 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Nigdy nie korzystałem ze wspomnianego programu / serwisu, o którym piszesz więc nie wiem czy w ogóle da się tam to wykonać. Jednak jak to przystało na WordPressa i do tego też jest gotowa wtyczka:

      https://wordpress.org/plugins/custom-comment-fields/

      odpowiedz
  6. michal s. 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    witaj!
    mam problem i jednoczesnie prosbe do Ciebie ;)
    jestem w trakcie tworzenia stronki opartej wlasnie na WP.
    i mam problem z formularzem komentarzy a mianowicie caly czas wyswietla mi sie pod polem na tresc taka adnotacja:

    Możesz użyć następujących tagów oraz atrybutów HTML-a:
    <a href="" title="" rel="nofollow"> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    co i jak zrboic abo to calkowicie zlikwidowac??
    Baaardzo prosze o pomoc!!
    michal s.

    odpowiedz
    1. Szymon Skulimowski 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Możesz odszukać w kodzie motywu wywołania funkcji comment_form i dodać do niej argument comment_notes_after w następujący sposób:

      comment_form( array( 'comment_notes_after' => '' ) );

      odpowiedz
  7. marek 12 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    dokładnie tego szukałem. Gdybyś jeszcze podał jak zrobić aby ustawić nofollow oraz dofollow i będę miał już komplet informacji :)

    odpowiedz
    1. Ola 12 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Najprościej dokonasz tego za pomocą wtyczek. Jest ich kilka od bardzo prostych które zamieniają wszystkie linki, do takich, które pozawalają ustalać własne reguły. Zobacz Smart DoFollow, albo Dofollow, a więcej znajdziesz w repozytorium po wpisaniu frazy „dofollow”. Niestety żadnej z wtyczek nie mogę osobiście polecić, bo do tej pory z nich nie korzystałam.

      odpowiedz
  8. Krzysztof 11 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Garść przydatnych informacji, w końcu znalazłem to czego szukałem. Na blog trafiłem przypadkiem i już wylądował w czytniku.

    Pozdrawiam

    odpowiedz
    1. Szymon Skulimowski 11 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Dzięki! Mam nadzieję, że zagości tam na stałe :)

      odpowiedz
  9. rr 11 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Przedstawiam dwie strony formularzami komentarzy:
    – 1 – http://gimnazjum.egzaminy.eu/2
    – 2 – http://sprawdzian.egzaminy.eu/2

    W obu przypadkach zastosowałem to samo theme, ale na pierwszej stronie formularz komentarzy zajmuje 1/3 strony, na drugiej jest schowany i wygląda bardzo estetycznie, praktycznie.

    Nie wiem, jak to się stało, gdzie w WP należy zmienić opcje, aby zmienić wygląd formularza komentarzy na ten schowany? Jeśli Pan wie, proszę o podpowiedź.

    Pozdrawiam i życzę szczęśliwego NRoku.

    odpowiedz
    1. Szymon Skulimowski 11 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Z tego co zauważyłem to już zdążyłeś sobie poradzić z tym problemem, racja? Zdradzisz gdzie leżał błąd?

      odpowiedz
  10. Kuba 11 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Wiesz może jak zrobić zamiast pola wpisywania listę rozwijaną? Próbowałem wstawić, ale po wstawieniu, oczywiście uzupełnieniu pól name oraz id nazwą zmiennej nie mogę kliknąć Opublikuj komentarz. Po zamianie na pole wprowadzania wszystko jest ok.

    odpowiedz
    1. Szymon Skulimowski 11 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Czy mógłbyś podać kod, z którego korzystasz?

      odpowiedz
  11. jupilaa87 11 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    To świetna wiadomość! Fajnie, że o tym napisałeś, pozdrawiam.

    odpowiedz
  12. Tomek 11 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Bardziej pytanie/prośba niż komentarz…

    Zabezpieczyłem na blogu część treści do których dostęp mają jedynie zalogowani czytelnicy. Jednak nie potrafię sobie poradzić z zabezpieczeniem komentarzy w ten sam sposób, tj. aby były one widoczne tylko dla zalogowanych użytkowników.

    Gdybym zabezpieczył cały wpis nie byłoby większego problemu, ale w tej sytuacji pojawił się problem… W tym miejscu proszę Cię o wskazanie rozwiązania dzięki któremu osiągnę zamierzony cel.

    Wszystko 'dzieje się’ na http://b-broker.pl Z góry dzięki za wskazówki dzięki którym uporam się z zabezpieczeniem komentarzy ;)

    odpowiedz
    1. Szymon Skulimowski 11 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      W jaki sposób zabezpieczyłeś część treści?

      odpowiedz
  13. DariuszB 10 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Witam serdecznie.

    Bardzo proszę o wskazówkę, jak zamienić pole z numerem GG na pole wyboru, aby wykorzystać do pole do 'akceptacji regulaminu’ przed jego wysłaniem.

    Będę zobowiązany i wdzięczny.

    Podrawiam serdecznie.

    D

    odpowiedz
    1. Szymon Skulimowski 10 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Hej DariuszB!

      Żeby osiągnąć zadowalający efekt powinieneś zrobić 2 rzeczy:

      1. Zamienić typ pola z „text” na „checkbox”.

      2. Powiedzieć WordPressowi żeby nie przyjmował komentarzy, które nie będą miały zaznaczonego wspomnianego wcześniej pola (nazwijmy je „agreement”) w poniższy sposób:

      add_filter( 'preprocess_comment', 'preprocess_comment_agreement' );
      
      function preprocess_comment_agreement( $commentdata ) {
      if ( ! isset( $_POST['agreement'] ) ) wp_die( 'Aby dodać komentarz powinieneś zaakceptować regulamin.' );
      return $commentdata;
      }

      To powinno wystarczyć. W dalszej kolejności możesz jeszcze dodać oznaczenie, że dane pole jest wymagane oraz wprowadzić walidację przez jQuery tak aby nie trzeba było przeładowywać strony.

      Powodzenia! Daj znać jeśli będziesz potrzebował pomocy :-)

      Pozdrawiam,
      Szymon

      odpowiedz
    2. DariuszB 10 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Witam Cię Szymonie.

      Jesteś nieoceniony. Bez problemu dzięki Twojej pomocy temat rozwiązałem i tę kwestię zamknąłem. Nie kryję, że mimo dostępu do wielu dokumentacji nie zdołałem za nic sam sobie z tym poradzić. Naturalnie jestem laikiem dlatego tym bardziej dziękuję za rzeczową i trafną w 100% pomoc.

      Twója intrukcja w funkcjonuje na medal.

      Dziękuje jeszcze raz i pozdrawiam.

      D.

      odpowiedz
    3. Szymon Skulimowski 10 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Nie ma sprawy, cała przyjemność po mojej stronie. Pozdrowienia!

      odpowiedz
  14. Tomasz 10 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Wielkie dzięki za tak obszerną wiedzę. Mam jednak jeden problem. Jak wyświetlić dodatkowy element o którym piszesz w artykule pomiędzy przyciskiem wyślij a textarea ?
    Możesz zobaczyć na mojej stronie o co mi chodzi jeżeli nie udało mi się wytłumaczyć mojego problemu.

    odpowiedz
  15. Piotrek 10 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Hej!

    A jakbym chciał numer GG umieścić w innym miejscu niż obok nicka autora? Np nad treśćią komentarza?

    Pozdrawiam i dzieki za pomoc

    odpowiedz
  16. Sebastian 8 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Teraz można wykorzystać już w tym celu plugin np. WordPress Comments Fields. Czasami na niektórych blogach spotyka się opcję dodania profilu do social media jako dodatkowe pole.

    odpowiedz
  17. Szarek 7 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Ja całkowicie usuwam komentarze, to jest najlepsze wyjście przed spamerami niestety… Kiedyś w moderację się nawet bawiłem ale nawet jak capcha była automaty i tak się dostawały

    odpowiedz
    1. Pecetowicz 7 lat temu:
      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 60

      Szarek nie trzeba usuwać całkowicie sekcji komentarzy. Wystarczy mały rebus lub Google Recaptcha. Ewentualnie zatwierdzanie komentarzy ręcznie.
      Zaopatrz się w wtyczkę Akismet.

      odpowiedz
  18. Tomek_Matys 7 lat temu:
    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 43

    Cześć, czy istnieje możliwość stworzenia nowego artykuły na ten temat? Dopiero zaczynam WP i informacje zawarte na tym blogu są bardzo przydatne. :) Liczę, że będą pojawiać się jakieś nowe artykuły w najbliższym czasie!

    odpowiedz

Dodaj własny komentarz


Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 95

Odnośniki z innych stron

Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:

  1. Linkdump #62: WordPress. « Tomasz Kowalczyk

    […] Dodatkowe pola w formularzu komentarzy WordPress. Jak w tytule. :) […]