WordPress – Fehlerseiten – Pimp Your 404
Fehlerseiten werden im Web leider viel zu oft vernachlässigt. Das muss aber nicht sein!
Dank WordPress kann man schnell und einfach seine Fehlerseite ‚aufpimpen‘. Hierzu möchte ich einige Möglichkeiten vorstellen.
Erst einmal brauchen wir eine neue Template-Datei: 404.php (Falls diese noch nicht vorhanden sein sollte.). Zur Not könnte man auch die index.php in Verbindung mit dem Conditional Tag is_404()
nutzen.
404 Fehlerseite – Das Grundgerüst
Ähnlich wie die meisten Template-Dateien sollte bzw. könnte die Fehlerseite folgende Grundstruktur aufweisen.
<?php get_header(); [...] // Dein Inhalt get_footer(); ?>
Wie man erkennen kann, ist der Aufbau recht simpel.
404 – Eigener WidgetBereich [Möglichkeit #1]
Was wäre, wenn man für die Fehlerseite eine extra Widget Area erstellt, welche wirklich nur für diese Seite zuständig ist?! So geht’s!
Als erstes wird in der functions.php ein (neuer) Widget-Bereich definiert/angemeldet.
./wp-content/themes/themename/functions.php
function register_widget_areas() { register_sidebar( array( 'name' => 'Pimp Your 404 ;)', 'id' => 'widget_area_404', 'description' => __('Widgetbereich für deine Fehlerseite'), 'before_widget' => '<div>', 'after_widget' => '</div>', 'before_title' => '<span>', 'after_title' => '</span>' ) ); } add_action( 'widgets_init', 'register_widget_areas' );
Im Backend sollte man unter Design => Widgets den neuen Widget Bereich erkennen können.
Abb. 1
Anschließend wird die Template-Datei der Fehlerseite um ein Snippet erweitert, sodass die „404-Widgets“ im Frontend ausgegeben werden können.
./wp-content/themes/themename/404.php
<?php get_header(); [...] // Dein Inhalt ?> <?php if(is_active_sidebar('widget_area_404')): dynamic_sidebar('widget_area_404'); endif; ?> <?php get_footer(); ?>
Abb. 2
Dann kann es auch schon losgehen. Einfach die gewünschten Widgets in die neu erstellte Area packen, Einstellungen vornehmen, ggf. Design anpassen & fertig.
404 – Widgets via the_widget-Funktion einbinden [Möglichkeit #2]
Alternativ könnte man zur Gestaltung der Fehlerseite bestimmte Widgets mit Hilfe der Funktion the_widget()
einbinden.
Hier würde ich eine Kombination mit der vorangegangen Möglichkeit vorschlagen.
./wp-content/themes/themename/404.php
<?php get_header(); [...] // Dein Inhalt ?> <?php if(is_active_sidebar('widget_area_404')): dynamic_sidebar('widget_area_404'); else: $instance = array( 'title' => __( 'Frisch eingetroffen ...' ), 'number' => 4, 'show_date' => false ); $args = array( 'before_widget' => '<section class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<span class="title">', 'after_title' => '</span>' ); the_widget( 'WP_Widget_Recent_Posts', $instance, $args ); endif; ?> <?php get_footer(); ?>
Der oben dargestellte Code sorgt dafür, dass – sofern man Möglichkeit #1 nicht nutzt – die 4 aktuellsten Beiträge aufgelistet werden.
404 – Page Content einbinden [Möglichkeit #3]
Nun möchte ich die dritte und letzte Möglichkeit vorstellen.
Man erstellt einfach eine neue Seite mit dem Namen 404. Die Template-Datei 404.php wird dann um folgenden Code erweitert:
<?php $errorPage = get_page_by_title('404'); if($errorPage && $errorPage->post_status=='publish'): echo $errorPage->post_content; endif; ?>
Sofern eine Seite mit dem Titel 404 vorhanden ist und auch veröffentlicht wurde, wird der Inhalt der Seite ausgegeben.
Auf diese Weise ist man bei der Gestaltung der Fehlerseite sehr flexibel.
Hallo,
ich habe lange nach so einer Anleitung gesucht und bin hier nun fündig geworden. Ich habe das neue Widget eingebaut und es hat super funktioniert. So kann ich flexibel den Bereich auf der 404 Seite über das Widget austauschen und probieren, was funktioniert. Vielen Dank!
Grüße Saskia