is_404() — проверяет, является ли текущая отображаемая страница 404-й ошибкой

Возвращает true в случае отображения страницы с 404-й ошибкой (после получения статуса
HTTP 404: Not Found), в остальных случаях — false.

is_404()

Данная функция не имеет никаких параметров.

Примеры использования

В WordPress для страниц с 404-й ошибкой предусмотрен специальный файл 404.php, он подключается автоматически, если запрошенной пользователем страницы не существует.

Если же его нет в теме, то будет открываться index.php, то есть по сути главная страница (подробнее о порядке подключения файлов в WordPress).

Так вот, если на вашем сайте имеет место второй вариант, тогда можно просто добавить условие в файл index.php:

if( is_404() ){
	echo 'Ошибка 404. Запрошенной вами страницы не существует.';
}

Мне конечно остается только догадываться, что находиться в вашем index.php, тем не менее вот более полный обобщенный вариант предыдущего примера:

get_header();
if( is_404() ){
	echo '<p>Ошибка 404. Запрошенной вами страницы не существует.</p>';
	get_search_form();
} else {
	while( have_posts() ): the_post();
		// ну тут будет например HTML-шаблон вывода поста
	endwhile;
}
get_footer();

В общем, я думаю, суть вы уловили.

Комментарии 2

  • Никита26 июня 2015 в 13:06 #

    Добрый день, Михаил!
    Как добиться такого же эффекта, как у Вас на блоге?
    Когда переходишь, например, по такому линку https://truemisha.ru/йуййуйцу выдаётся страница 404?

    У меня страница 404 появляется только когда переходишь, например, по такому линку http://example.com/?p=йцуйцуй. По всем другим, не корректным, запросам показывается главная.

    В настройках постоянных ссылок стоит "По умолчанию", т. е. http://example.com/?p=123
    Есть страница index.php, там дубль главной страницы.
    Есть файл 404.php, его содержание:

    <?php get_header(); ?>
    <?php
    	if( is_404() ){
    	echo 'Ошибка 404. Запрошенной вами страницы не существует.';
    }
    ?>
    <?php get_footer(); ?>

    В файле .htaccess написаны стандартные вордперссовские правила:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    • Миша27 июня 2015 в 00:06 #

      Добрый день!

      В настройках постоянных ссылок стоит "По умолчанию", т. е. http://example.com/?p=123

      Всё дело в этом — постоянные ссылки не настроены.

      Попробуйте директиву .htaccess ErrorDocument 404.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
  • Миша: Привет ещё раз, не поверишь, реально не сталкивался с этим вопросом. По теории можно сказать следующее: во-первых,...

  • Миша: Привет, вообще без проблем, делаешь всё через require(), require_once() - выбирай любую, какая больше нравится.

  • Виталий Моргунов: Привет! Не могу разобаться, как я могу контролировать порядок подключения стилей. В моем случае мне нужно чтобы стили...

  • Миша: Спасибо!

  • w0rmak: Это было просто. Нашел код в интернете. Добавьте и себе ymaps.load(function () { var input = document.getElem...