O que é permitido como argumento de identificação em register_sidebar ($ args)

13

Quero registrar uma barra lateral, mas estou um pouco confuso sobre os usos do idargumento na register_sidebarfunção.

O Codex diz: id - id da barra lateral - deve estar em letras minúsculas, sem espaços (o padrão é um ID numérico auto-incrementado).

De que utilidade é esse idargumento e deve sempre estar na forma numérica?

Gandalf
fonte

Respostas:

10

O ID da barra lateral é usado para identificar exclusivamente essa barra lateral específica. Se você não o definir e algo criar outro, poderá descobrir que sua barra lateral se move para algum lugar inesperado!

Não precisa ser numérico - você também pode usar strings.

John Landells
fonte
32

A resposta de John Landells é boa e correta.

Quero adicionar uma lista de IDs proibidos ou reservados - esses IDs podem aparecer na página de configuração do widget /wp-admin/widgets.php. Se você usar uma dessas… coisas estranhas acontecerão devido a IDs duplicados. Arrastar e soltar provavelmente não funcionará mais. Veja Ticket # 14466 para o caso mais óbvio: #footer.

Atualização, 17 de setembro .: #footer será permitida no WP 3.5 .
Atualização, 06 de novembro.: Por tíquete 14466, todos os IDs de widget widgets.phpsão prefixados sidebar-agora. A lista a seguir ficará obsoleta com o WordPress 3.5. Provavelmente.

Além disso, um ID não deve começar com um número, isso é HTML inválido.

Plug-ins instalados que afetam esta lista: Barra de Depuração , Barra de Depuração Cron , Widget Monster .

#_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

Coletei os IDs com um pequeno plug-in que pode ser usado em qualquer página:

<?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
}
);
fuxia
fonte
8
+1 (Editar) Adicionado ao Codexregister_sidebar() .
Kaiser
Por alguma razão, áreas de widgets cuja identificação começa com headtende a não processar corretamente na página de administração, pelo menos para mim
Manny Fleurmond
No WP 4.1, deparei-me com outro fenômeno: ao registrar uma barra lateral com um ID na notação BEM, como widgets--aside(traço duplo), a área do widget aparece na página de administração do widget, mas os widgets adicionados não permanecem depois de sair da página.
Volker E.
Excelente recurso. Eu estou querendo saber por que eles não resolverem os conflitos de nomes com um postfix, prefixo de algum tipo para os widgets ... IE _widget_${id}etc.
Eddie B
0

Você precisa evitar vários -caracteres, comotest1---test2

Nickyro
fonte
0

Aparentemente, você também deve evitar IDs que incluam prefixos da lista acima:

por exemplo:

#footer-xxx
#footer-yyy

A seguinte configuração funcionou inicialmente, mas resultou em erros (usando o tema da monção):

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>',
) );

Ao renomear a barra lateral, os erros desapareceram. Ainda não testei em outros temas. Portanto, isso pode ser aplicável apenas à minha configuração.

No entanto, o segmento realmente me ajudou na minha busca por uma solução :)

mathiasmadsen
fonte
Forneça algum contexto (elaborado por exemplos de código, por exemplo).
Kaiser #
Adicionadas algumas linhas a mais para esclarecimentos.
Mathiasmadsen 19/03/16