¿Qué se permite como argumento id en register_sidebar($args)?

28 jul 2012, 16:27:17
Vistas: 13.8K
Votos: 13

Quiero registrar una barra lateral pero estoy un poco confundido sobre los usos del argumento id en la función register_sidebar.

El Codex dice: id - ID de la barra lateral - Debe estar en minúsculas, sin espacios (el valor predeterminado es un ID numérico autoincremental).

¿Para qué sirve el argumento id y debe ser siempre en forma numérica?

0
Todas las respuestas a la pregunta 4
4
30

La respuesta de John Landells es buena y correcta.

Quiero añadir una Lista de IDs prohibidos o reservados – estos IDs pueden aparecer en la página de configuración de widgets /wp-admin/widgets.php. Si usas uno de estos... ocurrirán cosas extrañas debido a IDs duplicados. El arrastrar y soltar probablemente dejará de funcionar. Consulta el Ticket #14466 para el caso más obvio: #footer.

Actualización, 17 de Sept.: #footer será permitido en WP 3.5.
Actualización, 06 de Nov.: Según el ticket 14466 todos los IDs de widgets en widgets.php ahora tienen el prefijo sidebar-. La siguiente lista quedará obsoleta con WordPress 3.5. Probablemente.

Además, un ID no debería comenzar con un número, eso es HTML inválido.

Plugins instalados que afectan esta lista: 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

Recopilé los IDs con un pequeño plugin que puede usarse en cualquier página:

<?php # -*- coding: utf-8 -*-
/* Plugin Name: T5 Lista de 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
}
);
28 jul 2012 18:51:09
Comentarios

+1 (Edición) Añadido al Codex register_sidebar().

kaiser kaiser
29 jul 2012 02:34:27

Por alguna razón, las áreas de widgets cuyo ID comienza con head tienden a no mostrarse correctamente en la página de administración, al menos en mi caso

Manny Fleurmond Manny Fleurmond
9 dic 2013 08:18:07

En WP 4.1 me encontré con otro fenómeno: al registrar una barra lateral con un ID en notación BEM, como widgets--aside (doble guión), el Área de Widgets aparece en la página de administración de Widgets, pero los widgets añadidos no se mantienen después de salir de la página.

Volker E. Volker E.
2 feb 2015 08:39:30

Excelente recurso. Me pregunto por qué no resuelven los conflictos de nombres con un postfijo, prefijo o algo similar para los widgets... Por ejemplo, _widget_${id} etc.

Edward J Beckett Edward J Beckett
1 ago 2015 19:16:17
0
10

El ID de la barra lateral se utiliza para identificar de manera única esta barra lateral específica. Si no lo estableces y algo crea otra, podrías encontrarte con que tu barra lateral se mueve a un lugar inesperado.

No necesita ser numérico - también puedes usar cadenas de texto.

28 jul 2012 16:43:00
0

Debes evitar múltiples caracteres -, como test1---test2

9 abr 2015 17:28:34
2

Al parecer, también debes evitar IDs que incluyan prefijos de la lista anterior:

ejemplo:

#footer-xxx
#footer-yyy

La siguiente configuración funcionó inicialmente, pero resultó en errores (usando el tema Monsoon):

register_sidebar( array(
    'name'          => esc_html__( 'Área del pie de página', 'monsoon' ),
    'id'            => 'footer-area',
    'description'   => esc_html__( 'Aparece encima del pie de página.', 'monsoon' ),
    'before_widget' => '<div class="col-sm-3 footer-area widget %2$s">',
    'after_widget'  => '</div>',
    'before_title'  => '<h3>',
    'after_title'   => '</h3>',
) );

Al renombrar la barra lateral, los errores desaparecieron. Sin embargo, no he probado en otros temas, por lo que esto podría aplicarse solo a mi configuración.

De cualquier forma, este hilo realmente me ayudó en mi búsqueda de una solución :)

16 mar 2016 16:32:57
Comentarios

Por favor, proporciona algo de contexto (respaldado por ejemplos de código, por ejemplo).

kaiser kaiser
17 mar 2016 00:58:41

He añadido algunas líneas más para mayor clarificación.

mathiasmadsen mathiasmadsen
19 mar 2016 08:57:37