Да, похоже на баг. Для несуществующих цифровых ID вовращается 404:
http://core.trac.wordpress.org/ticket/12250
Но буквенное (некорректное для p
) значение заменяется на 0 и игнорируется.
Можно обойти фрагментом в functions.php
:
function validate_post_id($query_vars) {
if ( !empty( $query_vars['p'] ) && $query_vars['p'] !== absint( $query_vars['p'] ) )
$query_vars['error'] = '404';
if ( !empty( $query_vars['page_id'] ) && $query_vars['page_id'] !== absint( $query_vars['page_id'] ) )
$query_vars['error'] = '404';
return $query_vars;
}
add_filter('request', 'validate_post_id');
отправит посетителя на стандартную «404 Not Found» без оформления
Похоже, я о другом подумал.
Шаблон у меня отображается в обоих случаях. Но в первом — просто главная страница (без ошибки), а во втором — 404.php
.
На тестовом домене стоит чистый движок.
Адрес http://test.apelsinova.ru/?p=1884444 (не существует) выдаёт страницу из шаблона.
Адрес http://test.apelsinova.ru/1111111 (не существует) выдаёт страницу без шаблона. И так происходит всегда, когда ЧПУ установлены по-умолчанию. Если поставить любой вариант — второй адрес тоже будет выдавать страницу по шаблону. Если вернуть обратно на стандартный — снова базовая страница без оформления.
P.S.: Мне вопрос решать не нужно, у меня ЧПУ настроены на рабочем сайте. Написала на случай, что кто-нибудь не поленится написать репорт разработчику.
И так происходит всегда, когда ЧПУ установлены по-умолчанию
В этом случае до WordPress управление не доходит (т.к. нет правил в .htaccess
), страницу ошибки возвращает сам сервер.
Точно так же при стандартных ЧПУ WordPress не возвращает robots.txt
:
http://core.trac.wordpress.org/ticket/18841
Со стороны WordPress тут вряд ли что-то можно сделать — стандартные ЧПУ на то и стандартные, чтобы работали без .htaccess
.
Это понятно. Но это не очень хорошо, как мне кажется.
Проблему можно решить ручным добавлением в .htaccess
правил WordPress (структуру постоянных ссылок при этом можно оставить стандартной).
Разумеется, можно. Но то, что при установке и стандартной настройке у движка есть проблемы, мне не видится правильным. Хотя, конечно, это сугубо моё субъективное мнение.