Функция is_preview()
— это условный тег в WordPress, который определяет, находится ли пользователь на странице предпросмотра записи или страницы. Она возвращает значение true
, если текущий запрос является предпросмотром, и false
— в противном случае.
Стоит отметить, что функция не проверяет, авторизован ли пользователь или имеет ли он права на редактирование записи. Это значит, что любой пользователь, добавивший к URL параметр ?preview=true
, ?preview=1
, или любой другой вариант, отличный от ложного значения, вызовет срабатывание функции и получение положительного результата.
is_preview(): bool
Возвращаемое значение
true
— если текущая страница является предпросмотром записи или страницы.false
— если это не страница предпросмотра.
Важные моменты
- Проверка прав доступа:
Функция не проверяет, имеет ли пользователь права для редактирования записи или является ли он авторизованным. Для проверки ролей и прав доступа рекомендуется использовать функциюcurrent_user_can()
. - Манипуляции с URL:
Любой посетитель может вручную добавить параметр?preview=true
или аналогичный к URL, и функция вернетtrue
. Это делает функцию полезной для проверки в темах и плагинах, но стоит быть внимательным к безопасности и ролям пользователей.
1. Базовое использование
Пример простейшего использования функции is_preview()
для выполнения определенного кода, если страница является предпросмотром:
if ( is_preview() ) {
echo "Это страница предпросмотра записи.";
}
Если текущая страница — это предпросмотр записи, то на ней будет отображено сообщение.
2. Отключение аналитики на страницах предпросмотра
Часто требуется отключить код аналитики на страницах предпросмотра, чтобы не учитывать просмотры таких страниц в статистике. Вот как это можно сделать:
if ( ! is_preview() ) {
// Вставляем код аналитики
echo "<script>...код аналитики...</script>";
}
Код аналитики будет выполнен только на обычных страницах, но не на страницах предпросмотра.
3. Условная загрузка комментариев на страницах предпросмотра
Если вы хотите отключить отображение комментариев на страницах предпросмотра, можно добавить проверку с is_preview()
:
if ( ! is_preview() ) {
comments_template();
}
Таким образом, функция comments_template()
будет выполнена только на реальных страницах записи или страницы, а не в режиме предпросмотра.
4. Проверка перед выводом дополнительных данных
Если на предпросмотре страницы или записи не требуется выводить дополнительный контент, то можно условно ограничить его показ следующим образом:
if ( is_preview() ) {
echo "<p>Вы находитесь в режиме предпросмотра. Некоторые функции недоступны.</p>";
} else {
// Обычный контент для записи
the_content();
}
Такой подход позволяет показать сообщение о том, что функциональность ограничена при просмотре в режиме предпросмотра.
Заключение
Функция is_preview()
в WordPress — это удобный инструмент для проверки, находится ли пользователь на странице предпросмотра записи или страницы. Она помогает управлять отображением контента и функциональности для таких страниц. Однако важно помнить, что она не проверяет права доступа пользователя, поэтому в случае необходимости проверки ролей лучше использовать дополнительные функции, такие как current_user_can()
.