WordPress小部件:删除额外的div

时间:2011-03-26 01:06:36

标签: wordpress themes wordpress-theming

创建窗口小部件时,WordPress会添加

<div class="typewidget">
小部件周围的

。我想在不编辑wp-includes / default-widgets.php文件的情况下删除这些额外的div。

在我的主题index.php中,我使用:

<ul>
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar('widgetname') ) : ?>
<?php endif; ?>
</ul>

然后,在functions.php中:

register_sidebar(array(
'name' => 'widgetname',
'before_widget' => '<li>',
'after_widget'  => '</li>',
));

这显示在网站上:

<ul>
<li> 
<div class="textwidget"><strong><a href="#">musica</a></strong> <a href="#">Lorem ipsum dolor sit amet dolor sit am.</a></div>
</li>
</ul>

有什么想法吗?感谢。

3 个答案:

答案 0 :(得分:1)

一位朋友刚刚帮我解决了问题。

加载jQuery之后:

var cnt = $(".textwidget").contents()
$(".textwidget").replaceWith(cnt);

其中.textwidget是额外div中的类。它根据WordPress中每种类型的小部件而有所不同。

答案 1 :(得分:0)

以下内容可能有用。

var stuff_in_div = document.getElementById("typewidget").innerHTML;

stuff_in_div.parentNode.removeChild("typewidget");

然后如果你给&lt; li>像“目标”一样的id,你可以在那里推送stuff_in_div:

document.getElementById("target").innerHTML = stuff_in_div;

这看起来合理吗?

安迪

答案 2 :(得分:0)

如何使用类似的东西:

var stuff = document.getElementsByTagName("div");

for (i=0, i<stuff.length, i++) {

    if (stuff[i].className=='typewidget') {

        var stuff_in_div = stuff[i].innerHTML;
        stuff[i].parentNode.innerHTML=stuff_in_div;

    }

}

似乎这可能有效。你觉得怎么样?

安迪