0

ウィジェットを作成するとき、WordPressは<div class="typewidget">ウィジェットの周りに配置します。

ファイルを編集せずにこれらの余分なdivを削除したいと思い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> 

何か案は?ありがとう。

4

3 に答える 3

1

友人が私を助けてくれたので、これを修正しました。

jQuery をロードした後:

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

.textwidget余分な div のクラスはどこにありますか。WordPress のウィジェットの種類によって異なります。

于 2011-03-26T04:20:35.623 に答える
0

次のようなものが機能する可能性があります。

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

stuff_in_div.parentNode.removeChild("typewidget");

次に、<li>に「target」のようなIDを指定すると、そこにstuff_in_divを次のように押し込むことができます。

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

これは合理的だと思いますか?

アンディ

于 2011-03-26T01:15:25.637 に答える
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;

    }

}

これはうまくいくようです。どう思いますか?

アンディ

于 2011-03-26T02:25:06.000 に答える