it-swarm-pt.tech

Widgets que não aparecem no meu tema personalizado

Estou desenvolvendo este tema personalizado do WordPress: http://onofri.org/WP_BootStrap e estou tentando inserir uma área de widgetsob o Partner e Sostenitori section, mas não pode funcionar.

Eu realizei as seguintes operações:

1) Eu coloquei o seguinte código no arquivo functions.php theme:

/**
 * Register our sidebars and widgetized areas.
 *
 */
function arphabet_widgets_init() {

    register_sidebar(array(
        'name' => 'My_Widgtet_Area',
        'id' => 'partner-slide',
        'before_widget' => '<div>',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="rounded">',
        'after_title' => '</h2>',
    ));
}

add_action('widgets_init', 'arphabet_widgets_init');

Como você pode ver o nome da área widgetized é My_Widgtet_Area

2) Depois eu insiro o seguinte código no meu arquivo index.php para mostrar os widgets nas posições desejadas:

<section id="partnerSlide">
    <header class="header-sezione">
        <h2>Partner e Sostenitori</h2>
    </header>
    <div class="row">
        <?php
            // 'My_Widgtet_Area' area, where the id is called:
            if (is_active_sidebar( 'My_Widgtet_Area' ) ) : ?>

            <div id="widget-sidebar">
                <ul>
                    <?php dynamic_sidebar( 'My_Widgtet_Area' ); ?>
                </ul>
            </div><!-- #widget-sidebar .widget-area -->

        <?php endif; ?>
    </div>
</section>

3) Então eu entrei no painel de administração WP e no Appearance ---> Widget section eu tenho o My_Widget_Area "box" onde eu posso arrastar o widgets na minha instalação wordpress. Então eu coloquei nele algum widget (como o Calendar e o Search wigets) para experimentá-lo

O problema é que, como você pode ver no link anterior, o Partner e Sostenitori text está escrito, mas não há nenhum widget exibido na minha página.

Por quê? o que estou perdendo? Como posso resolver este problema?

Tnx

Andrea

2
AndreaNobili

Você está usando o nome do widget e não o i.d, e é por isso que não está funcionando.

Mude isso:

if (is_active_sidebar( 'My_Widgtet_Area' ) ) : ?>

        <div id="widget-sidebar">
            <ul>
                <?php dynamic_sidebar( 'My_Widgtet_Area' ); ?>
            </ul>

Para isso:

if (is_active_sidebar( 'partner-slide' ) ) : ?>

        <div id="widget-sidebar">
            <ul>
                <?php dynamic_sidebar( 'partner-slide' ); ?>
            </ul>

O i.d na tag template imediatamente acima deve corresponder ao i.d que você usa para registrar o widget no seu arquivo de funções, que neste caso é partner-slide

register_sidebar(array(
    'name' => 'My Widget Area',
    'id' => 'partner-slide',

Esse é um problema óbvio e pode haver outros, mas você deve seguir o Codex, pois fornece exemplos de trabalho com links relacionados http://codex.wordpress.org/Function_Reference/dynamic_sidebar

2
Brad Dalton