创建窗口小部件时,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>
有什么想法吗?感谢。
答案 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;
}
}
似乎这可能有效。你觉得怎么样?
安迪