Remover o conteúdo before_widget / after_widget de Wp_Widget_Text

4

Eu quero pegar o widget de texto e remover a marcação anterior / final da saída de texto atualmente exibida como

<div class="textwidget">Test</div>

O before_widget / after_widget que é atribuído a cada área de widget está sob meu controle, mas o próprio conteúdo do widget está além de mim.

// Area 4, located in the footer. Empty by default.
    register_sidebar( array(
        'name' => __( 'First Footer Widget Area', 'lakeshoreautoclinic' ),
        'id' => 'first-footer-widget-area',
        'description' => __( 'The first footer widget area', 'lakeshoreautoclinic' ),
        'before_widget' => ' <p>',
        'after_widget' => '</p>',
        'before_title' => '<strong>',
        'after_title' => '</strong>',
    ) );

que gera isso para o ambiente / widget

<p><strong>Test</strong><div class="textwidget">Test</div></p>
    
por Devise 25.09.2011 / 21:02

2 respostas

1

Você tem algumas opções que eu vejo:

Existe uma tag de modelo the_widget () que permite controlar as propriedades before_widget e after_widget. No entanto, ele separa o widget da interface do usuário Widgets.

Como alternativa, você pode tentar realizar o que estiver tentando fazer por meio do CSS. Se você mudar sua linha de before_widget para isso:

'before_widget' => '<p id="%1$s" class="widget %2$s">',

você terá algumas classes e IDs que farão com que cada widget seja capaz de estilo.

    
por mrwweb 06.05.2012 / 01:14
-2

Formatação de widgets de texto pode ser encontrada em '/wp-includes/default-widgets.php' a partir da linha 368. Para remover essa formatação, você teria que alterar a linha 382.

<div class="textwidget"><?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?></div>

Basta remover os divs para que você tenha

<?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?>

No entanto, dessa forma você está alterando os arquivos principais do wordpress, o que significa que ele pode ser alterado nas próximas atualizações, então a melhor maneira de fazer isso é copiando a classe de widget de texto, renomeando-a (e o construtor) temas functions.php (ou um plugin se você quiser).

Esta é também uma maneira de mudar a posição do nome do widget e assim por diante ...

    
por Goran Jakovljevic 23.04.2012 / 14:49