Post-spezifische Widgets in WordPress “Twenty Fourteen” Thema

Mit WordPress 3.8.1 mit ‘Twenty Fourteen’ Thema möchte ich meinen Beitrag so arrangieren, dass sein Hauptinhalt in die Hauptspalte (Mitte) geht, während Galerien, angehängte Dateien und Links, die zu diesem Beitrag gehören, zur Inhaltsseitenleiste gehen das Recht. Wie kann ich das machen? Benötige ich bestimmte Plugins?

Im Moment kann ich in der Inhaltsseitenleiste nur Site-spezifische Widgets platzieren. Ich denke, dass die Sidebar mit dem Namen “content” und visuell platziert und gestylt wie Post post-spezifische Widgets anzeigen sollte, aber ich kann es nicht dazu zwingen.

Solutions Collecting From Web of "Post-spezifische Widgets in WordPress “Twenty Fourteen” Thema"

Sie können ein Plugin wie Widget-Sichtbarkeit oder Widget-Logik installieren, mit dem Sie bedingte Tags hinzufügen können, um festzulegen, welche Posts, Seiten usw. Ihre Widgets anzeigen.

Andernfalls müssten Sie die bedingten Tags zu den nativen Sidebar-Widgetbereichen Ihrer Designs hinzufügen, um zu steuern, welche Posts, Seiten usw. angezeigt werden.

Beispiel:

Wenn das Widget nur in einzelnen Posts angezeigt werden soll, fügen Sie das bedingte Tag hinzu:

is_single() 

oder

 is_singular('post') 

Um das Anzeigen von Widgets in einzelnen Posts auszuschließen, würden Sie das gleiche bedingte Tag verwenden:

 !is_single() 

Sehen Sie sich dieses Codebeispiel an, wenn Sie Ihre eigenen benutzerdefinierten Sidebar-Widgets codieren möchten.

Sie können das Widget in Ihrer untergeordneten Themenfunktionsdatei registrieren und es dann direkt in eine Vorlagendatei einhängen oder indem Sie eine benutzerdefinierte function in Ihrer untergeordneten Themenfunktionsdatei verwenden.

Registriert ein neues Widget

 add_action( 'widgets_init', 'wpsites_add_widget' ); function wpsites_add_widget() { register_sidebar(array( 'name'=>'Custom Widget', 'id' => 'custom-widget', )); } 

Fügen Sie eine Vorlagendatei wie single.php hinzu

 < ?php if ( is_active_sidebar( 'custom-widget' ) ) : ?>  < ?php endif; ?> 

Quelle http://codex.wordpress.org/Function_Reference/dynamic_sidebar

Während die Logik kompliziert werden kann, können Sie die Anzeige von Widgets mit dem widget_display_callback erheblich widget_display_callback .

Beispielsweise wird nur das Widget “Core Text” in der Seitenleiste mit der ID “sidebar-1” angezeigt:

 add_filter( 'widget_display_callback', function ($instance, $widget, $sidebar){ if ( is_single() && 'sidebar-1' === $sidebar['id'] ) { if ('WP_Widget_Text' !== get_class($widget)) { return false; } } return $instance; }, 10,3 );