2010-12-14 11 views
9

Ciao Sto cercando di capire come possiamo ottenere il conteggio dei widget pubblicati in una data posizione della barra laterale.wordpress count widget

Ad esempio, ho una barra laterale denominata UTILITY che è una barra laterale orizzontale. Voglio che la larghezza di queste posizioni del widget sia regolata in modo uguale in base al numero di widget pubblicati in esso.

Voglio sapere che in una determinata pagina quanti widget sono pubblicati in questa barra laterale in modo da poter assegnare una classe di larghezza in base ad essa.

+0

Deve succedere sul lato server o potresti anche contare i widget e aggiungere i nomi delle classi con Javascript? – rik

risposta

23
wp_get_sidebars_widgets() 

vi darà una serie di barre laterali e dei widget che hanno, basta contare la matrice per la barra laterale appropriata ..

Ad esempio:

$the_sidebars = wp_get_sidebars_widgets(); 
echo count($the_sidebars['my-sidebar-id']); 

L'ID è quello che dichiari quando registri la barra laterale (quindi controlla il codice di registrazione della barra laterale).

Si potrebbe anche inserire questo in una funzione.

function count_sidebar_widgets($sidebar_id, $echo = true) { 
    $the_sidebars = wp_get_sidebars_widgets(); 
    if(!isset($the_sidebars[$sidebar_id])) 
     return __('Invalid sidebar ID'); 
    if($echo) 
     echo count($the_sidebars[$sidebar_id]); 
    else 
     return count($the_sidebars[$sidebar_id]); 
} 

Poi chiamarlo quando è necessario per ottenere il conteggio, utilizzando l'ID della barra laterale ..

count_sidebar_widgets('some-sidebar-id'); 

o conservare in variabile per altri usi ..

$my_var = count_sidebar_widgets('some-sidebar-id', false); 

Speranza che aiuta ..

+0

Grazie amico che mi ha davvero aiutato. –

+0

@Vikram - Prego ... per le future domande basate su WordPress, si prega di prendere in considerazione la pubblicazione su WPSE: http://wordpress.stackexchange.com – t31os

+0

sicuramente farà come consigliato. Mi dispiace per questo. In realtà sono nuovo di Stackoverflow e ancora di esplorare di più. –

0

Quando si crea la barra laterale, dovrebbe esserci una lista contenente il contenuto della barra laterale; stai iterando su di esso per aggiungere quegli elementi alla pagina generata. Basta usare la funzione count() in questo elenco per trovare il numero di elementi che stai visualizzando.

Problemi correlati