Динамический виджет WordPress - как убрать пометки и изменить имена классов?

Я добавил новую боковую панель

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' => '',
    ));

}

на моем шаблоне,

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

результат:

<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>

Как я могу удалить <div class="textwidget"> или изменить имя класса на что-то другое?

2 ответа

Решение

Попробуйте этот код для удаления textwidget и примените собственный класс в 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;
    }
}

Добавлять 'class' => '' ваши аргументы при регистрации боковой панели, если вы хотите удалить класс или 'class' => 'myClass' если хочешь использовать свой.

Регистрация виджета будет выглядеть примерно так:

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'
    ));

}
Другие вопросы по тегам