it-swarm.dev

Vytvořit Widget oblast v navigačním panelu pro Genesis Theme Framework?

( Poznámka moderátora: Původní název byl "Jak lze vytvořit navigační oblast v navigační liště (Genesis specific)?" (

V navigačním panelu se snažím vytvořit oblast widgetů. Snažím se to přizpůsobit skvělému tutoriálu Billa Ericksona zde o přidávání statického obsahu do navigačního panelu.

Toto je kód, který jsem přidal do souboru functions.php, abych mohl zaregistrovat a umístit oblast widgetu:

    genesis_register_sidebar(array(
    'name'=>'Nav Right',
    'description' => 'This is the right section of the navbar.',
    'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget'  => '</div>',
    'before_title'=>'<h4 class="widgettitle">','after_title'=>'</h4>'
));

//Adding the widget area to the navbar
add_filter('genesis_nav_items','navbar_widget',10,1);
add_filter('wp_nav_menu_items','navbar_widget',10,1);
function navbar_widget() {
    ?>
    <div class="nav_right">
    <?php if (!dynamic_sidebar('Nav Right')) : ?>
            <div class="widget">
            <h4><?php _e("Nav Right", 'genesis'); ?></h4>
            <p><?php _e("This is a widgeted area which is called Nav Right.", 'genesis'); ?></p>
        </div>
    <?php endif; ?>
    </div><!-- end .nav-right -->
    <?php
}

Co ale skončím, je toto:

alt text

S oblastí widgetů mimo navigační lištu (a odkazy odstraněné z navigačního panelu by zde měl být odkaz Domů a O aplikaci).

Toto je html (při zobrazení zdroje stránky):

<body class="home blog logged-in content-sidebar"> 
 <div id="wrap"> 
<div id="header"><div class="wrap"><div id="title-area"><h1 id="title"><a href="http://travisnorthcutt.com/gateway/" title="Research Valley International Gateway">Research Valley International Gateway</a></h1><p id="description">Just another WordPress site</p></div><!-- end #title-area --><div class="widget-area"></div><!-- end .widget_area --></div><!-- end .wrap --></div><!--end #header--> 
   <div class="nav_right">
                <div class="widget">
            <h4>Nav Right</h4>
            <p>This is a widgeted area which is called Nav Right.</p>
        </div>
        </div><!-- end .nav-right -->
  <div id="nav"><div class="wrap"></div></div>

Jakékoliv návrhy, jak získat novou oblast widgetu, která je vytvořena v rámci <div id="nav"></div>?

3
Travis Northcutt

Přidáváte filtr, nikoli akci. Nevím, jak Genesis hák funguje, ale nativní wp_nav_menu_items prochází (a očekává zpět) značení položek vlastní nabídky.

Namísto toho, aby se ozvaly další věci, měli byste je připojit ke vstupu a návratu.

To je jasné, jak se to dělá v tutoriálu, který jste propojili s:

add_filter('wp_nav_menu_items','follow_icons',10,1);
function follow_icons($output) {
    $follow = 'some stuff';
    return $output.$follow;
}

Aktualizace Zapomněli jste přidat část postranního panelu. Vzhledem k tomu, že postranní lišty jsou definovány podle definice, budete pravděpodobně muset vyrovnat svůj výstup tak, aby se používaly. Možná místo toho, aby udělal widget ares doslova uvnitř menu je lepší hledat háček, který umožňuje dělat to poblíž?

2
Rarst