Конструктивные элементы шаблона WordPress | Файл 404.php
Файл 404.php в шаблоне WordPress, как следует из его названия, выдает посетителю страницу с 404 ошибкой. Смысл данной страницы в том, чтобы показать пользователю, что введенный им адрес является ошибочным.
Как такое может произойти?
Во-первых, страницы сайта имеют свойство меняться со временем. Здесь подразумевается не замена контента, а изменение адреса страницы.
Например, спустя некоторое время вы вдруг решили заменить заголовок какого-нибудь поста на блоге. Естественно, что вы захотите поменять и адрес страницы. И если где-то в сети затесался старый адрес, и кто-то по нему перейдет, то такой посетитель получит шиш с маслом уведомление о 404 ошибке.
Во-вторых, искомая страница может быть вообще удалена. А ссылка на нее где-то в недрах Интернета все еще продолжает висеть.
В-третьих, часто так бывает, что к правильной, в общем-то, ссылке случайно прилепляется лишняя точка или запятая или еще какой-то символ. Ну, вот кто-то так неаккуратно поставил ссылку на ваш пост. Бывает же всякое.
Казалось бы, ну и шут с ними с ошибками. Ну нет такой страницы и ладно. Однако терять посетителей из-за этого как-то не хочется. Поэтому умные разработчики придумали мега-полезную вещь — специальную страницу, которая и оповещает посетителей о возникшей проблеме.
Но мало просто указать. И те, кто игнорирует этот мега-полезный файл 404.php, делают большую ошибку.
Сами посудите: придет человек малосведущий в системных сообщениях, увидит надпись вроде «Error 404» и кроме нее больше ничего. Обидится страшно, обругает матерно и вообще может кинуть в монитор кирпичом со злости. Поэтому данную страницу следует правильно оформить.
Как сделать правильную страницу 404 ошибки
1. Типичная 404-я страница выдает лишь заголовок «Error 404 — Not Found». И больше ничего. Этого преступно мало, так как ровным счетом ничего не объясняет.
Поэтому нужно заменить данный заголовок на что-то более человечное и добавить несколько строк поясняющего текста. Например:
<h2>Упс! Ошибочка вышла</h2>
<p>К сожалению, запрашиваемая вами страница отсутствует на сайте. Возможно, она поменяла адрес или была удалена. А может вы перешли по ошибочной ссылке. Как бы там ни было, не стоит унывать. Попробуйте поискать интересующую вас информацию в следующих темах: </p>
2. Далее можно добавить список рубрик сайта:
<ul>
<?php wp_list_cats('sort_column=name'); ?>
</ul>
или с десяток другой ссылок на последние записи:
<ul>
<?php get_archives('postbypost', 20); ?>
</ul>
или и то и другое вместе (цифра в скобках указывает на количество записей).
3. Также полезно добавить ниже форму поиска со словами:
Вы также можете воспользоваться поиском по сайту:
<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/" >
<input type="text" value="Поиск..." name="s" id="s" onfocus="if (this.value == 'Поиск...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Поиск...';}" />
</form>
Таким образом, вы сделаете страницу 404-й ошибки не просто информативной, но и достаточно функциональной.
Как создать страницу 404-й ошибки
Если у вас в шаблоне вообще нет файла 404.php, то ничего страшного. Можно воспользоваться в качестве образца файлом page.php. Открываете его, удаляете все лишнее, оставив из php кода лишь подключение шапки, сайдбара и подвала и добавив указанные выше элементы. Потом сохраняете его с именем 404.php. Вот и все.
Для примера привожу полный код 404-го файла с одного из моих блогов:
<?php get_header(); ?>
<div id="content">
<h2>Error 404 — Страница не найдена</h2>
<div class="entry">
<p>Простите, но того, что вы ищете, здесь нет, либо страница была удалена. </p>
<p>Однако вы можете попробовать найти интересующую вас информацию в следующих темах: </p>
<ul>
<?php get_archives('postbypost', 20); ?>
</ul>
<p>Либо воспользуйтесь формой поиска: </p>
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/" >
<input type="text" value="Поиск..." name="s" id="s" onfocus="if (this.value == 'Поиск...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Поиск...';}" />
</form>
</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Удачи!
Конструктивные элементы шаблона WordPress | Файл header.php
Конструктивные элементы шаблона WordPress | Файл index.php | Часть 1
Конструктивные элементы шаблона WordPress | Файл index.php | Часть 2
Конструктивные элементы шаблона WordPress | Файл single.php
Конструктивные элементы шаблона WordPress | Файл comments.php | Вывод комментариев
Конструктивные элементы шаблона WordPress | Файл comments.php | Форма комментирования
Конструктивные элементы шаблона WordPress | Файл sidebar.php
Конструктивные элементы шаблона WordPress | Файл footer.php
Конструктивные элементы шаблона WordPress | Файл 404.php
Автору респект! Толково, коротко, логично, без лишней воды.
Спасибо, Павел! :)