Cosa è consentito come argomento id in register_sidebar ($ args)


13

Voglio registrare una barra laterale ma sono un po 'confuso riguardo agli usi iddell'argomento in register_sidebarfunzione.

Il codice dice: id - ID barra laterale - Deve essere tutto in minuscolo, senza spazi (il default è un ID numerico auto-incrementato).

A che serve l' idargomento e deve sempre essere in forma numerica?

Risposte:


10

L'ID della barra laterale viene utilizzato per identificare in modo univoco questa barra laterale specifica. Se non lo imposti e qualcosa ne crea un altro, potresti scoprire che la tua barra laterale si sposta da qualche parte inaspettata!

Non deve essere numerico: puoi usare anche le stringhe.


32

La risposta di John Landells è buona e corretta.

Voglio aggiungere un elenco di ID vietati o riservati : questi ID potrebbero essere visualizzati nella pagina di configurazione del widget /wp-admin/widgets.php. Se usi uno di questi ... succederanno cose strane a causa di ID duplicati. Il trascinamento della selezione probabilmente non funzionerà più. Vedi Ticket # 14466 per il caso più evidente: #footer.

Aggiornamento, 17 settembre: #footer sarà consentito in WP 3.5 .
Aggiornamento, novembre, 06 .: Per biglietto 14466 tutti gli ID widget in widgets.phpsono sidebar-ora con prefisso . Il seguente elenco sarà obsoleto con WordPress 3.5. Probabilmente.

Inoltre, un ID non deve iniziare con un numero, ovvero HTML non valido.

Plugin installati che influenzano questo elenco: barra di debug , barra di debug 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

Ho raccolto gli ID con un piccolo plugin che può essere utilizzato su qualsiasi pagina:

<?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 (Modifica) Aggiunto al codiceregister_sidebar() .
Kaiser,

Per qualche ragione, le aree dei widget il cui id inizia con headtende a non essere visualizzate correttamente nella pagina di amministrazione, almeno per me
Manny Fleurmond,

Nel WP 4.1 mi sono imbattuto in un altro fenomeno, quando ho registrato una barra laterale con un ID nella notazione BEM, come widgets--aside(doppio trattino), l'area del widget appare nella pagina di amministrazione del widget, ma i widget aggiunti non rimangono dopo aver lasciato la pagina.
Volker E.

Risorsa eccellente. Mi chiedo perché non risolvano i conflitti di denominazione con un postfisso, prefisso di qualche tipo per i widget ... IE _widget_${id}ecc.
Eddie B

0

Devi evitare più -personaggi, cometest1---test2


0

Apparentemente, devi evitare gli ID che includono prefissi anche dall'elenco sopra:

per esempio:

#footer-xxx
#footer-yyy

La seguente installazione inizialmente funzionava, ma causava errori (usando il tema dei monsoni):

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

Rinominando la barra laterale, gli errori sono scomparsi. Non ho ancora testato su altri temi. Quindi questo potrebbe essere applicabile solo alla mia configurazione.

Tuttavia, il thread mi ha davvero aiutato nella mia ricerca di una soluzione :)


Fornisci un contesto (citato da esempi di codice per esempio).
Kaiser

Aggiunte alcune righe in più per chiarimenti.
Mathiasmadsen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.