Abilitare i Widget Predefiniti in un Tema Personalizzato

6 mag 2011, 18:57:56
Visualizzazioni: 2.88K
Voti: 1

Nello sviluppo di un tema personalizzato, come si abilitano i widget predefiniti incorporati? Nota che intendo i widget predefiniti incorporati, non quelli personalizzati. Ho provato il seguente esempio per un blog WP 3.12 inserendolo nel file functions.php del mio tema, cercando di attivare le Pagine per impostazione predefinita. Non ha funzionato, ma non so perché.

function mytheme_widget_init(){
  $asOps = array(
    'classname' => 'widget_pages',
    'description' => __( "Descrizione del widget Pagine" ) // Traduzione della descrizione del widget
  );
  wp_register_sidebar_widget('pages', __('Pagine'), 'wp_widget_pages', $asOps);
}

add_action('widgets_init','mytheme_widget_init');

Cosa sto sbagliando?

MODIFICA: LA SOLUZIONE

Nel mio tema, ho dovuto modificare sidebar.php e utilizzare questo markup invece.

<?php ?>
<div id="sidebar" role="complementary">
    <ul>

<?php if ( !dynamic_sidebar(1) ) : ?>
<?php endif; ?>

<?php if ( !is_active_sidebar(1) ) : ?>

    <li id="search" class="widget-container widget_search">
        <?php get_search_form(); ?>
    </li>

    <li id="categories" class="widget-container widget_categories">
        <?php wp_list_categories('show_option_none=&title_li=<h2>' . __('Categorie') . '</h2>' ); ?>
    </li>

    <li id="archives" class="widget-container widget_archives">
        <h2 class="widget-title">Archivi</h2>
        <ul>
            <?php wp_get_archives( 'type=monthly' ); ?>
        </ul>
    </li>

    <li id="pages" class="widget-container widget_pages">
        <ul>
            <?php wp_list_pages('title_li=<h2>' . __('Pagine') . '</h2>'); ?>
        </ul>
    </li>

<?php endif; ?>

    </ul>
</div><!-- sidebar -->
0
Tutte le risposte alla domanda 1
1

non è questo il modo, wp_register_sidebar_widget viene utilizzato per creare widget. se vuoi che la tua sidebar mostri widget di default usa [dynamic_sidebar()][1] nel tuo tema, ad esempio dal tema 2010:

<div id="primary" class="widget-area" role="complementary">
            <ul class="xoxo">

<?php
    /* Quando chiamiamo la funzione dynamic_sidebar(), questa mostrerà
     * i widget per quell'area widget. Se invece restituisce false,
     * significa che la sidebar semplicemente non esiste, quindi inseriremo
     * alcuni contenuti di default per ogni evenienza.
     */
    if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?>

            <li id="search" class="widget-container widget_search">
                <?php get_search_form(); ?>
            </li>

            <li id="archives" class="widget-container">
                <h3 class="widget-title"><?php _e( 'Archivio', 'twentyten' ); ?></h3>
                <ul>
                    <?php wp_get_archives( 'type=monthly' ); ?>
                </ul>
            </li>

            <li id="meta" class="widget-container">
                <h3 class="widget-title"><?php _e( 'Meta', 'twentyten' ); ?></h3>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </li>

        <?php endif; // fine area widget primaria ?>
            </ul>
        </div><!-- #primary .widget-area -->
6 mag 2011 19:18:54
Commenti

Avevi perfettamente ragione. Modificherò la mia domanda con la soluzione che alla fine ho scelto, ma voglio darti il merito per la soluzione.

Volomike Volomike
6 mag 2011 20:14:38