从文本小部件中删除

时间:2012-06-12 作者:Demilio

当您将文本小部件添加到Wordpress中的侧栏时,小部件包含以下代码

<div class="textwidget">
如何在不编辑核心的情况下删除此内容?

仅供参考-我认为这一行位于此处:wp包含/默认小部件。php(第383行)

5 个回复
SO网友:MrCarrot

好的,尝试用jQuery删除是违反直觉的。

通过输出缓冲修改它效率很低。

我们不应该编辑实际的小部件代码本身,因为这将在下次更新WordPress时恢复。

我建议您创建自己的文本小部件,或者简单地扩展和修改现有的WordPress小部件,如下所示(将以下代码放入functions.php文件中):

add_action( \'widgets_init\', \'register_my_widgets\' );


function register_my_widgets() {
    ...
    register_widget( \'My_Text_Widget\' );
}

class My_Text_Widget extends WP_Widget_Text {
    function widget( $args, $instance ) {
        extract($args);
        $title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? \'\' : $instance[\'title\'], $instance, $this->id_base );
        $text = apply_filters( \'widget_text\', empty( $instance[\'text\'] ) ? \'\' : $instance[\'text\'], $instance );
        echo $before_widget;
        if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
            <?php echo !empty( $instance[\'filter\'] ) ? wpautop( $text ) : $text; ?>
        <?php
        echo $after_widget;
    }
}

SO网友:hereswhatidid

如果您希望删除实际的div,并对其应用textwidget类,但不删除其内容,那么这是一个使用jQuery的简单方法:

$(\'.textwidget\').replaceWith($(\'.textwidget\').contents());

SO网友:Wyck

根据注释,在这种情况下,最好使用jQuery删除或替换类名,然后使用php函数,因为该类无论如何都是硬编码的。

删除它。

jQuery(\'.textwidget\').remove();
设置css以隐藏它。

jQuery(\'.textwidget\').css(\'display\', \'none\');
更改类名

jQuery(\'.textwidget\').attr(\'class\', \'newName\');

SO网友:MZAweb

您可以使用输出缓冲(http://php.net/manual/es/book.outcontrol.php)在一个变量中获取整个生成的页面,并在回显之前删除有问题的页面。

但这个案子似乎过于复杂了。您只需复制所有小部件代码并创建一个新的小部件(在插件或functions.php中),而无需硬编码div。它实际上没有那么多代码。

还有,有什么理由删除css中无法解决的div?

SO网友:IG-M

编辑文件:/wp包括/widgets/class wp widget文本。php查找、删除:<div class="textwidget"></div>

结束

相关推荐

从外部PHP脚本调用Functions.php中的函数

Preamble<我试图确保以前没有人问过这个问题。我刚开始使用StackExchange,所以我可能没有这么做。我不介意责备;厚皮肤,我学得很快:)THE PROBLEM我编写了一个函数并将其放置在主题函数中。phpfunction serverConnect() { $serverAccess = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if (!$serverAccess) { die(\"