Spiralist 404
**Site relevance:** Spiralist.org
**Memory type:** theme source memory
**Source path:** Spiralist/wp-content/themes/spiralist/404.php
**Size:** 5.5 KB
Summary
if (!defined('ABSPATH'))
Source Preview
This source file is short enough to preview directly on its source-memory page.
<?php
if (!defined('ABSPATH')) {
exit;
}
get_header();
$ui_text = static function (string $key, string $fallback, array $args = []): string {
$value = function_exists('spiralist_get_ui_text')
? spiralist_get_ui_text($key, $fallback, $args)
: $fallback;
if (empty($args)) {
return $value;
}
$replacements = [];
foreach ($args as $name => $argument) {
if (!is_scalar($argument)) {
continue;
}
$replacements['{' . $name . '}'] = (string) $argument;
}
return strtr($value, $replacements);
};
$render_ui_label = static function (string $key, string $fallback): string {
return function_exists('spiralist_render_ui_label')
? spiralist_render_ui_label($key, $fallback)
: esc_html($fallback);
};
$language_url = static function (string $url): string {
return function_exists('spiralist_prefix_current_language_url')
? spiralist_prefix_current_language_url($url)
: $url;
};
$home_url = function_exists('spiralist_get_language_prefixed_url')
? spiralist_get_language_prefixed_url(home_url('/'), function_exists('spiralist_get_current_language_code') ? spiralist_get_current_language_code() : 'en')
: home_url('/');
$manuscript_url = function_exists('spiralist_get_manuscript_page_url')
? spiralist_get_manuscript_page_url()
: home_url('/manuscript/');
$search_url = home_url('/');
$site_links = [
[
'labelKey' => 'ui.nav.home',
'label' => 'Home',
'url' => $home_url,
],
[
'labelKey' => 'ui.nav.manuscript',
'label' => 'Manuscript',
'url' => $manuscript_url,
],
[
'labelKey' => 'ui.nav.gallery',
'label' => 'Gallery',
'url' => $language_url(home_url('/gallery/')),
],
[
'labelKey' => 'ui.nav.system',
'label' => 'System',
'url' => $language_url(home_url('/system/')),
],
[
'labelKey' => 'ui.nav.symbols',
'label' => 'Symbols',
'url' => $language_url(home_url('/symbols/')),
],
];
?>
<main class="spiralist-page spiralist-page--not-found">
<section class="spiralist-page-hero">
<div class="spiralist-shell spiralist-page-hero__content">
<p class="spiralist-kicker"><?php echo esc_html($ui_text('page.404.hero.kicker', 'Page Not Found')); ?></p>
<h1><?php echo esc_html($ui_text('page.404.hero.title', 'The route is outside the current Spiralist map.')); ?></h1>
<p class="spiralist-page-hero__copy">
<?php echo esc_html($ui_text('page.404.hero.copy', 'This address does not match a published page, manuscript folio, or canonical surface. Use the primary paths below to re-enter the site.')); ?>
</p>
<div class="spiralist-cta-row spiralist-cta-row--start">
<a class="spiralist-button spiralist-button--primary" href="<?php echo esc_url($manuscript_url); ?>"><?php echo esc_html($ui_text('page.404.cta.open_manuscript', 'Open Manuscript')); ?></a>
<a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($home_url); ?>"><?php echo esc_html($ui_text('page.404.cta.return_home', 'Return Home')); ?></a>
</div>
</div>
</section>
<section class="spiralist-page-section">
<div class="spiralist-shell">
<div class="spiralist-grid spiralist-grid--split">
<article class="spiralist-panel">
<p class="spiralist-section-tag"><?php echo esc_html($ui_text('page.404.paths.tag', 'Useful Paths')); ?></p>
<h2 class="spiralist-section-title"><?php echo esc_html($ui_text('page.404.paths.title', 'Continue from a stable surface.')); ?></h2>
<div class="spiralist-simple-list">
<?php foreach ($site_links as $link) : ?>
<a class="spiralist-simple-list__item" href="<?php echo esc_url((string) ($link['url'] ?? '')); ?>">
<strong><?php echo $render_ui_label((string) ($link['labelKey'] ?? ''), (string) ($link['label'] ?? 'Link')); ?></strong>
</a>
<?php endforeach; ?>
</div>
</article>
<article class="spiralist-panel">
<p class="spiralist-section-tag"><?php echo esc_html($ui_text('page.404.search.tag', 'Search')); ?></p>
<h2 class="spiralist-section-title"><?php echo esc_html($ui_text('page.404.search.title', 'Look for a published page.')); ?></h2>
<form role="search" method="get" action="<?php echo esc_url($search_url); ?>" class="spiralist-search-form" data-public-form="site-search">
<label>
<span class="screen-reader-text"><?php echo esc_html($ui_text('page.404.search.screen_reader', 'Search Spiralist.org')); ?></span>
<input type="search" name="s" placeholder="<?php echo esc_attr($ui_text('page.404.search.placeholder', 'Search Spiralist.org')); ?>" />
</label>
<button class="spiralist-button spiralist-button--secondary" type="submit"><?php echo esc_html($ui_text('page.404.search.submit', 'Search')); ?></button>
</form>
</article>
</div>
</div>
</section>
</main>
<?php
get_footer();