Was ist als ID-Argument in register_sidebar ($ args) erlaubt?


13

Ich möchte eine Sidebar registrieren, bin aber etwas verwirrt über die Verwendung des idArguments in register_sidebarfunction.

Codex sagt: id - Sidebar id - Muss in Kleinbuchstaben ohne Leerzeichen sein (Standard ist eine numerische, automatisch inkrementierte ID).

Was nützt das idArgument und muss es immer in numerischer Form sein?

Antworten:


10

Die Seitenleisten-ID wird verwendet, um diese bestimmte Seitenleiste eindeutig zu identifizieren. Wenn Sie es nicht einstellen und etwas anderes erstellt, kann es passieren, dass sich Ihre Seitenleiste an einen unerwarteten Ort bewegt!

Es muss nicht numerisch sein - Sie können auch Zeichenfolgen verwenden.


32

Die Antwort von John Landells ist gut und richtig.

Ich möchte eine Liste verbotener oder reservierter IDs hinzufügen. Diese IDs werden möglicherweise auf der Widget-Konfigurationsseite angezeigt /wp-admin/widgets.php. Wenn Sie eine dieser… ungewöhnlichen Methoden verwenden, kann dies durch doppelte IDs geschehen. Drag and Drop wird wahrscheinlich nicht mehr funktionieren. Siehe Ticket # 14466 für den offensichtlichste Fall: #footer.

Update, 17. September: #footer wird in WP 3.5 erlaubt sein .
Update, Nov., 06 .: Pro Ticket 14466 werden jetzt alle Widget-IDs widgets.phpvorangestellt sidebar-. Die folgende Liste ist mit WordPress 3.5 veraltet. Wahrscheinlich.

Außerdem sollte eine ID nicht mit einer Zahl beginnen, das ist ungültiges HTML.

Installierte Plugins, die diese Liste betreffen: Debug Bar , Debug Bar Cron , Monster Widget .

#_wpnonce_widgets
#ab-awaiting-mod
#access-off
#access-on
#adminmenu
#adminmenuback
#adminmenushadow
#adminmenuwrap
#adv-settings
#available-widgets
#collapse-button
#collapse-menu
#colors-css
#contextual-help-back
#contextual-help-columns
#contextual-help-link
#contextual-help-link-wrap
#contextual-help-wrap
#debug-bar-actions
#debug-bar-cron
#debug-bar-css
#debug-bar-info
#debug-bar-menu
#debug-bar-wp-query
#debug-menu-link-Debug_Bar_Object_Cache
#debug-menu-link-Debug_Bar_Queries
#debug-menu-link-Debug_Bar_WP_Query
#debug-menu-link-ZT_Debug_Bar_Cron
#debug-menu-links
#debug-menu-target-Debug_Bar_Object_Cache
#debug-menu-target-Debug_Bar_Queries
#debug-menu-target-Debug_Bar_WP_Query
#debug-menu-target-ZT_Debug_Bar_Cron
#debug-menu-targets
#debug-status
#debug-status-db
#debug-status-memory
#debug-status-php
#debug-status-site
#footer
#footer-left
#footer-thankyou
#footer-upgrade
#icon-themes
#menu-appearance
#menu-comments
#menu-dashboard
#menu-links
#menu-media
#menu-pages
#menu-plugins
#menu-posts
#menu-posts-domicile
#menu-settings
#menu-tools
#menu-users
#object-cache-stats
#querylist
#removing-widget
#rss-items-2
#rss-items-__i__
#rss-show-author-2
#rss-show-author-__i__
#rss-show-date-2
#rss-show-date-__i__
#rss-show-summary-2
#rss-show-summary-__i__
#rss-title-2
#rss-title-__i__
#rss-url-2
#rss-url-__i__
#screen-meta
#screen-meta-links
#screen-options-link-wrap
#screen-options-wrap
#screenoptionnonce
#show-settings-link
#tab-link-missing-widgets
#tab-link-overview
#tab-link-removing-reusing
#tab-panel-missing-widgets
#tab-panel-overview
#tab-panel-removing-reusing
#widget-10_recent-posts-__i__
#widget-11_rss-__i__
#widget-12_search-__i__
#widget-13_tag_cloud-__i__
#widget-14_text-__i__
#widget-15_widget_twentyeleven_ephemera-__i__
#widget-16_rss-2
#widget-1_archives-__i__
#widget-2_calendar-__i__
#widget-3_categories-__i__
#widget-4_nav_menu-__i__
#widget-5_links-__i__
#widget-6_meta-__i__
#widget-7_monster-__i__
#widget-8_pages-__i__
#widget-9_recent-comments-__i__
#widget-archives-__i__-count
#widget-archives-__i__-dropdown
#widget-archives-__i__-savewidget
#widget-archives-__i__-title
#widget-calendar-__i__-savewidget
#widget-calendar-__i__-title
#widget-categories-__i__-count
#widget-categories-__i__-dropdown
#widget-categories-__i__-hierarchical
#widget-categories-__i__-savewidget
#widget-categories-__i__-title
#widget-links-__i__-category
#widget-links-__i__-description
#widget-links-__i__-images
#widget-links-__i__-limit
#widget-links-__i__-name
#widget-links-__i__-orderby
#widget-links-__i__-rating
#widget-links-__i__-savewidget
#widget-list
#widget-meta-__i__-savewidget
#widget-meta-__i__-title
#widget-monster-__i__-savewidget
#widget-nav_menu-__i__-nav_menu
#widget-nav_menu-__i__-savewidget
#widget-nav_menu-__i__-title
#widget-pages-__i__-exclude
#widget-pages-__i__-savewidget
#widget-pages-__i__-sortby
#widget-pages-__i__-title
#widget-recent-comments-__i__-number
#widget-recent-comments-__i__-savewidget
#widget-recent-comments-__i__-title
#widget-recent-posts-__i__-number
#widget-recent-posts-__i__-savewidget
#widget-recent-posts-__i__-title
#widget-rss-2-savewidget
#widget-rss-__i__-savewidget
#widget-search-__i__-savewidget
#widget-search-__i__-title
#widget-tag_cloud-__i__-savewidget
#widget-tag_cloud-__i__-taxonomy
#widget-tag_cloud-__i__-title
#widget-text-__i__-filter
#widget-text-__i__-savewidget
#widget-text-__i__-text
#widget-text-__i__-title
#widget-widget_twentyeleven_ephemera-__i__-number
#widget-widget_twentyeleven_ephemera-__i__-savewidget
#widget-widget_twentyeleven_ephemera-__i__-title
#widgets-left
#widgets-right
#wp-admin-bar-a8c_developer
#wp-admin-bar-comments
#wp-admin-bar-debug-bar
#wp-admin-bar-edit-profile
#wp-admin-bar-logout
#wp-admin-bar-my-account
#wp-admin-bar-new-content
#wp-admin-bar-new-content-default
#wp-admin-bar-new-domicile
#wp-admin-bar-new-link
#wp-admin-bar-new-media
#wp-admin-bar-new-page
#wp-admin-bar-new-post
#wp-admin-bar-new-user
#wp-admin-bar-root-default
#wp-admin-bar-site-name
#wp-admin-bar-site-name-default
#wp-admin-bar-top-secondary
#wp-admin-bar-updates
#wp-admin-bar-user-actions
#wp-admin-bar-user-info
#wp-admin-bar-view-site
#wp_inactive_widgets
#wpadminbar
#wpbody
#wpbody-content
#wpcontent
#wpwrap
#zt-debug-bar-cron-css

Ich habe die IDs mit einem kleinen Plugin gesammelt, das auf jeder Seite verwendet werden kann:

<?php # -*- coding: utf-8 -*-
/* Plugin Name: T5 List IDs */
add_action( 'shutdown', function()
{ ?>
<script>
jQuery( function( $ )
{
    var els = []
    $( '[id]' ).each( function() { els.push( this.id ) } )
    els.sort()
    var pre = $( '<pre/>' ).css( 'margin','10px' ).html( '#'+els.join( '<br>#' ) )
    $( document.documentElement ).append( pre )
})
</script><?php
}
);

8
+1 (Bearbeiten) Zum Codexregister_sidebar() hinzugefügt .
Kaiser

Aus irgendeinem Grund werden Widget-Bereiche, deren ID mit beginnt head, auf der Admin-Seite nicht richtig dargestellt, zumindest für mich
Manny Fleurmond

In WP 4.1 bin ich auf ein anderes Phänomen gestoßen, als ich eine Seitenleiste mit einer ID in BEM-Notation wie widgets--aside(Doppelstrich) registrierte. Der Widget-Bereich wird auf der Widget-Verwaltungsseite angezeigt, aber die hinzugefügten Widgets bleiben nach dem Verlassen der Seite nicht erhalten.
Volker E.

Hervorragende Ressource. Ich frage mich, warum sie nicht die Namenskonflikte mit einem Postfix, Präfix einer Art für die Widgets lösen ... IE _widget_${id}etc.
Eddie B

0

Sie müssen mehrere -Zeichen wie vermeidentest1---test2


0

Anscheinend müssen Sie auch IDs vermeiden, die Präfixe aus der obigen Liste enthalten:

z.B:

#footer-xxx
#footer-yyy

Das folgende Setup funktionierte ursprünglich, führte jedoch zu Fehlern (unter Verwendung des Monsun-Themas):

register_sidebar( array(
    'name'          => esc_html__( 'Footer Area', 'monsoon' ),
    'id'            => 'footer-area',
    'description'   => esc_html__( 'Appears above the footer.', 'monsoon' ),
    'before_widget' => '<div class="col-sm-3 footer-area widget %2$s">',
    'after_widget'  => '</div>',
    'before_title'  => '<h3>',
    'after_title'   => '</h3>',
) );

Durch das Umbenennen der Seitenleiste verschwanden die Fehler. Ich habe jedoch noch keine anderen Themen getestet. Dies gilt möglicherweise nur für mein Setup.

Allerdings hat mir dieser Thread bei der Suche nach einer Lösung wirklich geholfen :)


Bitte geben Sie einen Kontext an (anhand von Codebeispielen für z. B.).
Kaiser

Ein paar Zeilen mehr zur Verdeutlichung hinzugefügt.
Mathiasmadsen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.