Как отключить комментарии на страницах WordPress

Обычно комментарии не нужны на страницах, но в большинстве тем (в том числе в стандартных) они есть, и нет опции позволяющей раздельно включать/выключать комментарии для постов и страниц. Если же вручную вырезать вызов формы комментариев из page.php, то при следующем обновлении темы файл обновится и все вернется как было.

Чтобы не править файлы темы, сделаем небольшой плагин. Создайте файл с именем disable-comments-on-pages.php и вставьте в него следующий код:

<?php # -*- coding: utf-8 -*-
/**
Plugin Name: Disable Comments On Pages
Version:     1.0
Author:      Thomas Scholz
Author URI:  http://toscho.de
License:     GPL
*/
// This file is not called from WordPress. We don't like that.
! defined( 'ABSPATH' ) and exit;
// If the function exists this file is called as comments template.
// We don't do anything then.
if ( ! function_exists( 't5_disable_comments_on_pages' ) ) {
	/**
	 * Replaces the path of the original comments template with this
	 * file's path on pages.
	 *
	 * @param  string $file Original comments template file path.
	 * @return string
	 */
	function t5_disable_comments_on_pages( $file ) {
		return is_page() ? __FILE__ : $file;
	}
	add_filter( 'comments_template', 't5_disable_comments_on_pages', 11 );
}

Залейте этот файл в папку plugins вашего сайта и активируйте его. Теперь комментарии не будут выводиться на страницах.

Перевод: Advent Calendar- How to disable comments for WordPress pages in any theme

Метки: , ,

Комментарии

  1. mihdan 03.12.2011 в 23:15 #

    А как можно отключить комментарий для конкретного поста?

    • Neolot 03.12.2011 в 23:21 #

      В админке, достаточно снять галочку в свойствах поста)

      • mihdan 03.12.2011 в 23:39 #

        Надо было включить в «Настройках экрана» опцию «Обсуждение» :)

  2. Роджер 16.02.2012 в 08:52 #

    Я в свойствах страницы запретил комментарии. Осталась соответствующая надпись «Comments are closed.» Как мне ее убрать-то, не подскажете?

    • Neolot 16.02.2012 в 10:30 #

      Это зависит от вашей темы. Попробуйте так:

      1. Добавьте в style.css правило: .nocomments {display:none;}

      Если не помогло, тогда п.2

      2. Найдите текст Comments are closed. в comments.php и сотрите

      • Роджер 16.02.2012 в 10:35 #

        спасибо большое, попробую. Сайт можно по ссылке в моем нике глянуть. Проблема еще вот в чем: «You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.» Вот эта надпись тоже мешает. Все-таки главная страница сайта будущего турагентства)

Ваше мнение

Если вам нужно вставить код, оберните его в специальный шорткод [php], [html], [css], [js].
Например: [js]Ваш код[/js]