web-dev-qa-db-fra.com

supprimer <div class = "textwidget"> de text-widget

Lorsque vous ajoutez un widget texte à une barre latérale dans Wordpress, le widget inclut ce code

<div class="textwidget">

Comment puis-je supprimer cela sans modifier le noyau?

FYI - Je pense que cette ligne se trouve ici: wp-includes/default-widgets.php (ligne 383)

2
Demilio

OK, tenter de supprimer le avec jQuery est contre-intuitif.

La modifier via la mise en mémoire tampon de sortie est inefficace.

Et nous ne devrions pas éditer le code du widget lui-même, car cela reviendra lors de la prochaine mise à jour de WordPress.

Je suggérerais soit de créer votre propre widget texte, soit simplement d’étendre et de modifier le widget WordPress existant comme suit (mettez le code suivant dans votre fichier 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;
    }
}
7
MrCarrot

Si vous cherchez à supprimer la div à laquelle s'applique la classe textwidget mais pas son contenu, il s'agit d'une méthode simple utilisant jQuery:

$('.textwidget').replaceWith($('.textwidget').contents());
0
hereswhatidid