Пустая страница ошибки 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 и использовать их стартовую тему, чтобы начать работу. Они предоставляют множество шаблонов, которые работают из коробки и делают вещи намного проще. Тем не менее, вы должны быть осторожны при обновлении, если вы довольно далеко продвинулись в своем проекте, потому что я уверен, что будут существенные изменения, такие как, например, функция маршрутов. На странице, упомянутой выше, содержится некоторая полезная информация о том, стоит ли обновлять или нет, и как это сделать.
Надеюсь, это поможет.