@lasthero67

Как в WordPress вызвать 404-ю ошибку, если в url'е отстутсвует параметр?

В WordPress необходимо сделать так, чтобы при открытии адреса страницы без указания параметров отображлась 404-я ошибка.
Пример:
/book/author/ - должна быть 404-я
/book/author/?id=41 - открывается
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
add_action("template_redirect", function()  { 
    $currentUrl = trailingslashit(strtok($_SERVER['REQUEST_URI'], "?"));
    
    if ($currentUrl === "/book/author/") {
        $authorId = array_key_exists("id", $_GET) ? (int)$_GET['id'] : null;
        $author = !is_null($authorId) ? get_user_by("id", $authorId) : null;
        
        if (empty($author)) {
            global $wp_query;
            $wp_query->set_404();
            status_header(404);
            get_template_part(404); 
            die();
        }
    } 
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы