WordPress小部件:删除额外的div

WordPress小部件:删除额外的div,wordpress,themes,wordpress-theming,Wordpress,Themes,Wordpress Theming,创建小部件时,WordPress会放置一个 <div class="typewidget"> 围绕小部件。我想在不编辑wp includes/default-widgets.php文件的情况下删除这些额外的div 在我的theme index.php中,我使用: <ul> <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('widgetname') ) : ?> <

创建小部件时,WordPress会放置一个

<div class="typewidget">

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

在我的theme 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>',
));
register\u侧栏(数组(
“名称”=>“widgetname”,
'before_widget'=>'
  • ', 'after_widget'=>'
  • ', ));
    这在网站上显示:

    <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>
    

    有什么想法吗?谢谢。

    像下面这样的方法可能会奏效

    var stuff_in_div = document.getElementById("typewidget").innerHTML;
    
    stuff_in_div.parentNode.removeChild("typewidget");
    
    然后,如果你给
  • 一个像“target”这样的id,你就可以把东西塞进div里:

    document.getElementById("target").innerHTML = stuff_in_div;
    
    这似乎合理吗


    Andy

    使用类似以下的东西怎么样:

    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;
    
        }
    
    }
    
    var stuff=document.getElementsByTagName(“div”);
    
    对于(i=0,我一个朋友刚刚帮了我,我解决了这个问题

    加载jQuery后:

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

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

    这很酷,而且是bdrew,但是我需要一个使用类而不是ID的解决方案,因为我将使用很多元素,而不仅仅是每页一个。你知道如何使你的解决方案适应这种情况吗?抱歉我误读了你原来的帖子,以为div有一个“typewidget”的id。事实上,这破坏了设计的某些部分