Programistyczne wyłączenie komentarzy dla wpisów i stron w Wordpresie

.

Przeglądając jedno z forów na temat Wordpresa natrafiłem na problem odnoszący się do domyślnego wyłączenia komentarzy dla wpisów.
Wygląda na to, że tego typu zmiana wciąż sprawia sporej liczbie użytkowników Wordpresa znaczne problemy.
W nieniejszym wpisie przedstawię jak z pomocą kilku linii kodu PHP wyłączyć komentarze dla wpisów i stron w Wordpresie.

W Wordpresie nie wykonuje się żadnych zmian zmieniając pliki silinika. Do modyfikacji jego działania służą filtry i akcje.
W tym wpisie, podobnie jak w kilku wcześniejszych, wykorzystam filtr aby zmodyfikowac informacje o wpisie (lub stronie) przed jego zapisem do bazy danych.

Wyłączenie komentarzy dla wpisów

Domyślnie w Wordpresie komentarze są włączone, aby je wyłączyć należy zrobić to ręcznie podczas edycji wpisu. Niezbyt miła perspektywa, zwłaszcza dla zapominalskich.

Aby programistycznie wyłączyć komentarze we wszystkich wpisach należy zmodyfikować obiekt $post a dokładniej jego własność o nazwie comment_status.


add_filter('comment_status_pre','disable_comments_for_posts');
function disable_comments_for_posts($comment_status){
  global $post;
  if($post -> post_type == 'post'){
    $comment_status = 'closed';
  }
  return $comment_status;
}

W powyższym przykładzie wykorzystałem akcję o nazwie comment_status_pre i dodałem do niej funkcję disable_comments_for_posts. To właśnie w niej zmodyfikowałem własność comment_status obiektu $post ustawiając jej wartość do 'closed'.

Wyłączenie komentarzy dla stron

Podobny, aczkolwiek lekko zmieniony kod można zastosować do wyłączenia komentarzy dla stron (co pewnie dla niektórych może być bardziej użyteczne niż poprzedni przypadek).


add_filter('comment_status_pre','disable_comments_for_pages');
function disable_comments_for_pages($comment_status){
  global $post;
  if($post -> post_type == 'page'){
    $comment_status = 'closed';
  }
  return $comment_status;
}

Pierwszy i/lub drugi przykład aby zadziałał powienien być umieszczony w pliku function.php lub pliku wtyczki (o ile chcemy aby był on niespecyficzny dla motywu).

I to by chyba było na tyle co do wyłączania komentarzy dla wpisów i stron w Wordpresie.


Komentarze ( 3 )


Witam Wkleiłem kod na temat braku komentarzy na stronach blogu i nie zadziałało. Można dalej pisać komentarze. Coś mam nie tak?


Witam ponownie Jak wyłączyć właśnie wpisywanie, komentowanie, okienka na stronie "o mnie" Po prostu by strona "o mnie" była informacją o mnie i nic więcej. Pozdrawiam Jakub


Witam Znalazłem. Przepraszam za kłopot. Podczas tworzenia strony można wyłączyć, tylko trzeba pełne meni sobie wyświetlić. Pozdrawiam Jakub


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>