Cum să activezi widget-urile implicite într-o temă personalizată WordPress

6 mai 2011, 18:57:56
Vizualizări: 2.88K
Voturi: 1

În dezvoltarea de teme personalizate, cum se pot activa widget-urile implicite din WordPress? Vorbesc despre widget-urile implicite, nu cele personalizate. Am încercat următorul exemplu pentru un blog WP 3.12 plasând codul în fișierul functions.php al temei, încercând să activez widget-ul Pagini implicit. Nu a funcționat, dar nu înțeleg de ce.

function mytheme_widget_init(){
  $asOps = array(
    'classname' => 'widget_pages',
    'description' => __( "Afișează o listă de pagini")
  );
  wp_register_sidebar_widget('pages', __('Pagini'), 'wp_widget_pages', $asOps);
}

add_action('widgets_init','mytheme_widget_init');

Ce fac greșit?

EDIT: SOLUȚIA

În tema mea, a trebuit să modific fișierul sidebar.php și să folosesc acest markup:

<?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="widet-container widget_categories">
        <?php wp_list_categories('show_option_none=&title_li=<h2>' . __('Categorii') . '</h2>' ); ?>
    </li>

    <li id="archives" class="widget-container widget_archives">
        <h2 class="widget-title">Arhive</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>' . __('Pagini') . '</h2>'); ?>
        </ul>
    </li>

<?php endif; ?>

    </ul>
</div><!-- sidebar -->
0
Toate răspunsurile la întrebare 1
1

nu așa se folosește, wp_register_sidebar_widget este folosit pentru a crea widget-uri. dacă vrei ca bara laterală să afișeze widget-uri în mod implicit, folosește [dynamic_sidebar()][1] în tema ta, de exemplu din tema 2010:

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

<?php
    /* Când apelăm funcția dynamic_sidebar(), aceasta va afișa
     * widget-urile pentru acea zonă de widget-uri. Dacă în schimb returnează false,
     * atunci bara laterală pur și simplu nu există, așa că vom introduce manual
     * câteva widget-uri implicite pentru orice eventualitate.
     */
    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( 'Arhive', '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; // sfârșitul zonei de widget-uri primary ?>
            </ul>
        </div><!-- #primary .widget-area -->
6 mai 2011 19:18:54
Comentarii

Aveți absolută dreptate. Voi completa întrebarea mea cu soluția pe care am ales-o în final, dar vreau să vă recunosc meritul pentru soluție.

Volomike Volomike
6 mai 2011 20:14:38