如何在wordpress侧栏中的ul标签周围添加div类包装器

时间:2013-12-31 11:37:15

标签: html wordpress sidebar

我想在ul标记wordpress侧边栏周围添加div包装标记。 默认情况下,我会看到我的侧边栏代码。

<div id="meta-40" class="widget HTML widget_meta">
    <title>META</title>
    <ul>
        <li>content</li>
        <li>content</li>
    </ul>
<div>

我想要这样的事情:

<div id="meta-40" class="widget HTML widget_meta">
    <title>META</title>
        <div class="THIS IS THE WRAPPER WHAT I WANT">
            <ul>
                <li>content</li>
                <li>content</li>
            </ul>
        </div>
    <div>

我的PHP代码:

if ( function_exists('register_sidebar') ) {
    register_sidebar(array(
        'name' => 'Right Sidebar bottom',
        'id' => 'sidebar-1',
        'description'   => ' no description',
        'before_widget' => '<div id="%1$s" class="%2$s">',
        'after_widget' => '</div',
        'before_title' => '<h2>',
        'after_title' => '</h2>',
    ));
 }
<div class="sidebar-wrapper">
    <div class="sidebar section" id="sidebar">
        <?php if(!function_exists ('dynamic_sidebar') || !dynamic_sidebar ('sidebar-1') ) ?>
    </div>
</div>

3 个答案:

答案 0 :(得分:1)

您应该只需修改已注册的侧边栏即可。注意:我没有在下面的代码中检查\ n是否有效。

'after_widget' => '</div></div>',
'after_title' => '</h2>\n <div class="THIS IS THE WRAPPER WHAT I WANT">',

答案 1 :(得分:1)

做以下两件事:

'after_title' => '</h2><div class="THIS IS THE WRAPPER WHAT I WANT">',
after_widget' => '</div></div>',

答案 2 :(得分:0)

虽然使用类似jQuery的东西来包装你的子菜单会很容易,但为此目的使用jQuery并不是一个好习惯。将它放在functions.php中:

class Child_Wrap extends Walker_Nav_Menu
{
    function start_lvl(&$output, $depth)
    {
        $indent = str_repeat("\t", $depth);
        $output .= "\n$indent<div class=\"custom-sub\"><ul class=\"sub-menu\">\n";
    }
    function end_lvl(&$output, $depth)
    {
        $indent = str_repeat("\t", $depth);
        $output .= "$indent</ul></div>\n";
    }
}

我假设您的菜单是在标题中生成的,所以请转到header.php(或任何使用wp_nav_menu函数的文件)并查找以“wp_nav_menu”开头的任何内容。

由于我没有任何代码可以查看,我只能猜测它正在使用的参数(如果有的话)。如果它看起来完全像“wp_nav_menu()”,括号之间没有任何内容,那么将其更改为以下内容:

wp_nav_menu(array('walker' => new Child_Wrap()))