Виджеты WordPress: удаление лишних элементов - PullRequest
0 голосов
/ 26 марта 2011

При создании виджета WordPress помещает

<div class="typewidget">

вокруг виджета.Я хочу удалить эти дополнительные элементы без изменения файла wp-includes / default-widgets.php.

В моей теме 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 ]

1 голос
/ 26 марта 2011

Друг только что помог мне, и я исправил это.

После загрузки jQuery:

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

Где .textwidget - класс в дополнительном div. Это зависит от типа виджета в WordPress.

0 голосов
/ 26 марта 2011

как насчет использования что-то вроде:

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;

    }

}

похоже, это может работать.Что ты думаешь?

Энди

0 голосов
/ 26 марта 2011

может сработать что-то вроде следующего.

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

stuff_in_div.parentNode.removeChild("typewidget");

и затем, если вы дадите

идентификатор типа "target", вы можете просто вставить туда stuff_in_div с помощью:
document.getElementById("target").innerHTML = stuff_in_div;

Это кажется разумным?

Andy

...