Einen Link von einer statischen Seite aus dem Menü entfernen


Alte und neue Tipps

Die Entfernung eines Links zu einer statischen Seite aus dem oberen Menü erwies sich etwas schwieriger als gedacht. Das “Wie” wird zwar in den FAQ von WordPress Deutschland ganz gut beschrieben, der Schwierigkeitsgrad jedoch hängt wohl etwas vom verwendeten Theme ab. Zumindest beim Theme Twenty Twelve verstecken sich mehrere wp_list_pages in unterschiedlichen Dateien. Als richtig erwies sich die Datei post-template.php im Verzeichnis wp-includes, in dem die Funktion definiert wird.
Kleiner Nachtrag vom November 2013: Rückblickend sei erwähnt, ein Blick in die Function Reference von WP hätte die Suche erheblich vereinfacht.

In dieser Datei, etwa ab Zeile 810 (bezogen auf Version 3.5.2), befindet sich folgender Code-Abschnitt. Bei exclude brauchen dann nur noch die IDs von den statischen Seiten eingetragen zu werden, die nicht mehr als Link im Hauptmenü erscheinen werden sollen. Im nachfolgenden Beispiel wurden die statischen Seiten mit der ID 12 und 38 aus dem Hauptmenü entfernt.

function wp_list_pages($args = '') {
    $defaults = array(
        'depth'       => 0, 'show_date' => '',
        'date_format' => get_option('date_format'),
        'child_of'    => 0, 'exclude' => '12,38',
        'title_li'    => __('Pages'), 'echo' => 1,
        'authors'     => '', 'sort_column' => 'menu_order, post_title',
        'link_before' => '', 'link_after' => '', 'walker' => '',
    );

Der bessere Weg

November 2013 – Eine Bearbeitung von Core-Dateien sollte, wenn immer möglich, vermieden werden. Auch wenn es sich nur um kleinere Änderungen oder Ergänzungen handelt, spätestens beim nächsten Update werden die Core-Dateien ohnehin überschrieben. Zu diesen Core Dateien gehört auch die die oben erwähnte post-template.php im Verzeichnis wp-includes.
Ein besserer Weg wäre gewesen, in der functions.php vom Theme nach der Funktion twentytwelve_page_menu_args und diese wie folgt mit einer Zeile zu ergänzen:

function twentytwelve_page_menu_args( $args ) {
    if ( ! isset( $args['show_home'] ) )
        $args['show_home'] = true;
        $args['exclude'] = '12,38,382';
    return $args;
}
add_filter( 'wp_page_menu_args', 'twentytwelve_page_menu_args' );

Ein abschließender Tipp: Wer einmal nicht weiß, in welcher Datei er suchen sollte, kann das Script für eine “Suche im Quellcode” benutzen, sollte es nur nach getanem Werk wieder löschen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *