it-swarm.com.de

Wie kann ich ein Menü nur auf bestimmten Seiten anzeigen?

Anstatt Seitenleisten-Widgets zu verwenden, um zu bestimmen, auf welcher Seite sie angezeigt werden sollen, möchte ich in den Menüeinstellungen auswählen, ob sie auf bestimmten Seiten angezeigt werden sollen.

Standard Wordpress Weg:

How it looks default

Projects ist also eine Seite und hat einige Unterseiten. Aber was ist, wenn ich 10 weitere dieser Seiten und Unterseiten mit der gleichen Situation habe?.

Ich möchte eine zusätzliche Einstellung hinzufügen (eine Liste der Top-Level-Seiten):

Where I want the setting

Ich kann jedoch keine Dokumentation, Aktionen, Filter usw. finden, wenn diese Einstellungen geladen werden.

9
user40422

Das ist eine nette Option, aber ich stimme sri zu, im Moment kommt es wirklich auf dein Thema an. Sie können einen Workaround über is_page () durchführen. Sie müssen so etwas in Ihre page.php theme-Datei schreiben:

<?php
    if (is_page('projects')) {
        if ( is_active_sidebar( 'sidebar-navigation' )) {
            dynamic_sidebar( 'sidebar-navigation' );
        }
    }
?>

Wenn Sie die Seitenleiste auch auf anderen Seiten anzeigen möchten, können Sie die Logik oder wie folgt verwenden:

if (is_page('projects') || is_page('home') || is_page('post-page'))
3
Bernie

Ich weiß, dass dieser Thread alt ist, aber für den Fall, dass jemand nach einer Antwort dafür suchen muss, möchte ich die bedingten Menüs von themify https://themify.me/conditional-menus vorschlagen. Sie wählen, welches Menü Sie verwenden möchten, pro Seite, Kategorie, Meta, alles. und es ist kostenlos :) hoffe das hilft

1
rosane

So geht's in Twenty Twelve Themes header.php, die in ein Child-Theme kopiert wurden.

<?php if ( is_page('projects') ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'conditional-menu-name', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'Primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>

Erstellen Sie ein neues Menü mit den Elementen, die Sie anzeigen möchten, und tauschen Sie den Namen des bedingten Menüs im obigen Code gegen den Namen Ihres Menüs aus.

die Namen der menu_class müssen möglicherweise für andere Themen als Twenty Twelve geändert werden.

Quelle

1
Brad Dalton

Ich halte die Verwendung eines Plugins dafür für besser, sodass Sie die Funktionalität auch dann beibehalten können, wenn Sie Themen in Zukunft ändern. Schauen Sie sich dieses Plugin an. Es macht, was Sie wollen, aber etwas anders, als Sie es verspottet haben.

https://wordpress.org/plugins/page-specific-menu-items/

Wenn dies hilft, stimmen Sie bitte ab oder akzeptieren Sie als Antwort. Vielen Dank!

1
Mark.C

Eine Option wäre, benutzerdefinierte Vorlagen für jedes Menü zu erstellen, das Sie haben. (Dies bezieht sich auf das Kontrollkästchen für die Themenpositionen.) Anschließend wählen Sie auf jeder Seite die Vorlage aus, die Sie verwenden möchten, und es wird auch das mit dieser Vorlage verknüpfte Menü verwendet.

https://codex.wordpress.org/Page_Templates

Es gibt Ihnen das gleiche Ergebnis, das Sie meiner Meinung nach suchen, aber anstatt jedem Menü zu sagen, auf welcher Seite es angezeigt wird, sagen Sie jeder Seite, auf welchem ​​Menü es angezeigt wird. Ein zusätzlicher Vorteil dieser Methode besteht darin, dass Sie nicht versehentlich festlegen können, dass sich zwei Menüs zur selben Zeit am selben Ort befinden sollen.

0
KnightHawk

Wenn Sie bereit sind, Ihre Widgets erneut zu aktivieren und eine einfache Lösung wünschen, können Sie ein Plugin mit dem Namen Display Widgets verwenden. Ich habe dies verwendet und benutze den Textteil, wo Sie Links hinzufügen können, wohin Sie gehen möchten. Es funktioniert unabhängig davon, ob sich die Links auf Ihrer eigenen Site oder auf einer anderen Site befinden. Unter dem Text befindet sich ein Leerzeichen, in dem Sie auswählen können, welche Seiten angezeigt oder ausgeblendet werden sollen. Sie können weiterhin die Widgets entfernen, die Sie nicht verwenden.

Ich habe eine ganze Weile mit den Menüs herumgespielt, bevor ich dieses Plugin gesucht und gefunden habe. Es läuft gut.

Sie finden es im Plugins-Bereich von WordPress.org.

0
Susan