是否在导航栏中为Genesis主题框架创建小工具区域?

时间:2010-10-06 作者:Travis Northcutt

(Moderator\'s note: 最初的标题是“如何在导航栏中创建小部件区域(特定于Genesis)?”(

我正在尝试在导航栏中创建一个小部件区域。我试图改编比尔·埃里克森的优秀教程here 在向导航栏添加静态内容时。

这是我添加到函数中的代码。用于注册和放置小部件区域的php文件:

    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
}
然而,我最终得到的是:

alt text

导航栏外的小部件区域(以及从导航栏中删除的链接-应该有一个主页和关于链接)。

这是html(当我查看页面源代码时):

<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>
关于如何获取创建的新窗口小部件区域的任何建议<div id="nav"></div>?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

您正在添加筛选器,而不是操作。我不知道Genesis hook是怎么工作的wp_nav_menu_items 传递(并期望返回)自定义菜单项的标记。

您应该将其附加到输入并返回,而不是重复您的其他内容。

在您链接到的教程中,这显然是如何做到的:

add_filter(\'wp_nav_menu_items\',\'follow_icons\',10,1);
function follow_icons($output) {
    $follow = \'some stuff\';
    return $output.$follow;
}
Upd. 忘记添加关于侧栏部分。由于侧边栏的定义与之相呼应,因此您可能必须缓冲其输出才能以这种方式使用。也许,与其在菜单中直接制作widget ares,不如在附近寻找允许这样做的钩子?

相关推荐

Widgets won't save

我几乎没有创建widget区域的经验,我一直在将widget保存在widget区域的“红色菜单”中。我已经搜索了十几篇帖子,但似乎都没找到。我目前在Wordpress 4.0.1中工作,这是我的代码:小部件。php:class Red_Menu_Widget extends WP_Widget { function redmenu_widget( $args, $instance ) { $widget_ops = array( \'cl

是否在导航栏中为Genesis主题框架创建小工具区域? - 小码农CODE - 行之有效找到问题解决它

是否在导航栏中为Genesis主题框架创建小工具区域?

时间:2010-10-06 作者:Travis Northcutt

(Moderator\'s note: 最初的标题是“如何在导航栏中创建小部件区域(特定于Genesis)?”(

我正在尝试在导航栏中创建一个小部件区域。我试图改编比尔·埃里克森的优秀教程here 在向导航栏添加静态内容时。

这是我添加到函数中的代码。用于注册和放置小部件区域的php文件:

    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
}
然而,我最终得到的是:

alt text

导航栏外的小部件区域(以及从导航栏中删除的链接-应该有一个主页和关于链接)。

这是html(当我查看页面源代码时):

<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>
关于如何获取创建的新窗口小部件区域的任何建议<div id="nav"></div>?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

您正在添加筛选器,而不是操作。我不知道Genesis hook是怎么工作的wp_nav_menu_items 传递(并期望返回)自定义菜单项的标记。

您应该将其附加到输入并返回,而不是重复您的其他内容。

在您链接到的教程中,这显然是如何做到的:

add_filter(\'wp_nav_menu_items\',\'follow_icons\',10,1);
function follow_icons($output) {
    $follow = \'some stuff\';
    return $output.$follow;
}
Upd. 忘记添加关于侧栏部分。由于侧边栏的定义与之相呼应,因此您可能必须缓冲其输出才能以这种方式使用。也许,与其在菜单中直接制作widget ares,不如在附近寻找允许这样做的钩子?

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'