Пустая страница с ошибкой 404 при использовании шаблона Twig и Timber (WordPress)

Я использую Древесина для проекта WordPress. Я пытаюсь настроить отображение пользовательского шаблона ветки страницы ошибок 404 при ошибках 404. В настоящее время при моей ошибке 404 отображается пустой экран. Однако, когда я иду по маршруту: /404, отображается мой шаблон. Я предполагаю, что либо что-то не так с маршрутизацией, либо мне не хватает ключевой логики в 404.php.

Как я могу заставить мой шаблон веточки отображаться при моих ошибках 404?

Код маршрута в functions.php:

Routes::map('/404', function($params){
Routes::load('routes/404.php', null, $params, 404);
});

404.php:

<?php
$context = Timber::get_context();
$post = new TimberPost();
$context['page'] = $post;

global $wp;
$url = home_url($wp->request);
$context['url'] = preg_replace('#^https?://#', '', rtrim($url, '/'));

$context['global'] = get_fields('options');

Timber::render('views/pages/404.twig', $context);

404.twig:

{% extends "layouts/layout.twig" %}

{% block content %}
<div class = "row row-is-centered">
<div class = "col ns-col-is-8 lead-6 txt-center">
<h1 class = "txt-size-5">Our apologies, we couldn't find {{url}}</h1>
</div>
</div>
{% endblock %}

Проверьте, где находится ваш 404.php. Если его нет в корневой папке вашей темы, это может не сработать. Также ознакомьтесь с ответом @ robertguss. У него есть хорошее руководство по маршрутизации.

Gchtr 31.03.2018 21:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
1 249
1

Ответы 1

Вам не нужно настраивать какую-либо настраиваемую маршрутизацию, чтобы WordPress мог выбрать страницу 404. Вот WP Codex на 404 страницах

Кроме того, если вы используете стартовую тему Timber, она работает по умолчанию. Вот файлы, которые поставляются с темой. Я только что протестировал это на проекте Timber, над которым я сейчас работаю, и я ничего не сделал для настройки пользовательской страницы 404. У меня просто есть то, что по умолчанию входит в стартовую тему Timber:

404.php

<?php
/**
 * The template for displaying 404 pages (Not Found)
 *
 * Methods for TimberHelper can be found in the /functions sub-directory
 *
 * @package  WordPress
 * @subpackage  Timber
 * @since    Timber 0.1
 */

$context = Timber::get_context();
Timber::render( '404.twig', $context );

404.twig

{% extends "base.twig" %}

{% block content %}
    Sorry, we couldn't find what you're looking for.
{% endblock %}

Также похоже, что маршруты устарели: https://timber.github.io/docs/upgrade-guides/1.0/#routes

Я не уверен, насколько далеко вы продвинулись в своем проекте, но вы можете попробовать обновить Timber до последней версии и использовать их стартовую тему, чтобы начать работу. Они предоставляют множество шаблонов, которые работают «из коробки» и значительно упрощают работу. Тем не менее, вы должны быть осторожны при обновлении, если вы довольно далеко продвинулись в своем проекте, потому что я уверен, что будут критические изменения, такие как, например, функция маршрутов. На указанной выше странице представлена ​​полезная информация о том, следует ли вам обновляться и как это сделать.

Надеюсь, это поможет.

Другие вопросы по теме