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&uuml;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
wordpress-widget-area-404-empty
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
wordpress-widget-area-404-example
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.

One Response to “WordPress – Fehlerseiten – Pimp Your 404”
  • MakeItSweet sagt:

    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

Schreibe einen Kommentar

* Pflichtfelder