WordPress dynamic widget – how to remove markups and change class names?

I added a new sidebar

function child_register_sidebar(){
    register_sidebar(array(
        'name' => 'Social Media (Follow)',
        'id' => 'sidebar-follow',
        'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ),
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '',
        'after_title' => '',
    ));

}

on my template,

Read More
<?php if ( is_active_sidebar( 'sidebar-follow' ) ) { ?>
    <div class="follow-container">
        <?php dynamic_sidebar( 'sidebar-follow' ); ?>
    </div>
<?php } ?>

result:

<div class="follow-container">
      <div class="textwidget">
           <a href="[full link to your Twitter]">
              <img title="Twitter" alt="Twitter" src="https://socialmediawidgets.files.wordpress.com/2014/03/01_twitter1.png" width="35" height="35" />
           </a>
      </div>
</div>

How can I remove <div class="textwidget"> or change the class name to something else?

Related posts

2 comments

  1. Try this code for remove textwidget and apply own class in functions.php

        function register_my_widgets() {
        register_sidebar(array(
            'name' => 'test-widget',
            'id' => 'test-widget',
            'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ),
            'before_widget' => '',
            'after_widget' => '',
            'before_title' => '',
            'after_title' => '',
        ));
        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;
        }
    }
    
  2. Add 'class' => '' to your arguments when registering sidebar if you want to remove the class or 'class' => 'myClass' if you want use yours.

    Registering the widget would look something like this:

    function child_register_sidebar(){
        register_sidebar(array(
            'name' => 'Social Media (Follow)',
            'id' => 'sidebar-follow',
            'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ),
            'before_widget' => '',
            'after_widget' => '',
            'before_title' => '',
            'after_title' => '',
            'class' => 'myClass'
        ));
    
    }
    

Comments are closed.