Условный тег: comments_open

17.04.2012
Описание

Проверяет открыто ли комментирование для текущей страницы или записи. Этот условный тег является boolean-функцией, то есть он возвращает только true или false.

Использование
<?php if ( comments_open($post_id) ) { ... } ?>
Параметры

$post_id

(число) (необязательный) - указывает ID конкретной страницы или записи.

По умолчанию значения нет.

Значения

boolean

Возвращает true если комментирование открыто и false если нет.

Примеры

1. Использование в comments.php

Данный код, вставленный в файл шаблона comments.php проверит возможность комментирования текущей страницы или записи и в зависимости от этого выведет различные текстовые сообщения.

<?php if ( comments_open() ) : ?>
    <p>Оставьте комментарий к записи, заполнив форму ниже.</p>
<?php else : ?>
    <p>Комментирование записи закрыто.</p>
<?php endif; ?>

2. Использование в single.php или page.php

Данный код, вставленный в файлы шаблона single.php или page.php проверит возможность комментирования текущей записи или страницы и в зависимости от этого подключит или нет файл шаблона comments.php (если комментирование запрещено, то комментарии к записи или странице не будут выведены вообще, даже если они существуют).

<?php if ( comments_open() ) comments_template();  ?>

3. Использование параметра $post_id

Данный пример проверяет открытость комментариев записи или страницы с ID равным 40.

if ( comments_open('40') ) {
    echo 'Комментирование записи "' . get_the_title('40') . '" разрешено.';
} else {
    echo 'Комментирование записи "' . get_the_title('40') . '" закрыто.'; }
?>

4. Хук на использование comments_open()

Этот код, вставленный в файл шаблона functions.php при использовании функции comments_open() закроет комментарии ко всем страницам в блоге (comments_open() будет возвращать false). Важно помнить, что если в шаблоне форма добавления комментариев вставляется без проверки comments_open(), то комментирование страниц все равно будет открыто.

function my_comments_open($open, $post_id) {
    $post = get_post($post_id);
    if ('page' == $post->post_type)
        $open = false;
    return $open; }
add_filter('comments_open', 'my_comments_open', 10, 2);
Лог изменений

Функция добавлена в версии 1.5.0

Исходный файл

Функция comments_open() находится в wp-includes/comment-template.php

Связанные теги|функции
Рубрики: Теги шаблоновФункции WordPressУсловные теги

Понравился пост? Подпишись на обновления по Обновления блога по RSSRSS или Обновления блога на TwitterTwitter !

Комментарии (всего 2 комментария)
Написать комментарий

(обязательно)

(обязательно, не публикуется)

Для вставки кода используйте кнопку "Код", по умолчанию используется синтаксис подсветки языка "php", вы можете поменять его на любой другой поддерживаемый GeSHi язык, например "javascript", "css", "html4strict", "sql" и тд. Используйте предпросмотр!
 


Подписаться на уведомления без комментирования.