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

Я использую Timber для проекта 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 %}

1 ответ

Вам не нужно настраивать какую-либо пользовательскую маршрутизацию, чтобы WordPress поднял страницу 404. Вот кодекс WP на 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/

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

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

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