Eu tenho um widget personalizado simples que solicita sua largura (que é usada posteriormente no front-end). O campo de largura é uma lista suspensa de seleção, portanto, um usuário tem opções predefinidas.
Eu terei muitas instâncias do meu widget, cada uma terá sua própria configuração de largura.
Agora, no meu código do widget, tenho o seguinte código:
echo $before_widget;
o que resulta em:
<div class="widget my" id="my-widget-1"></div>
O que eu gostaria de fazer é, de alguma forma, conectar $before_widget
e adicionar minha própria classe (a largura especificada no menu suspenso de seleção). Então, eu quero a seguinte marcação:
<div class="widget my col480" id="my-widget-3"></div>
E se não houver nenhuma classe especificada, eu quero adicionar class="col480"
.
Como faço para conseguir isso?
Obrigado pela ajuda! Dasha
fonte
você pode usar o
dynamic_sidebar_params
gancho de filtro para encontrar seu widget e adicionar suas classes a ele:fonte
get_option('widget-name')
$before_widget
string. Sua resposta me levou ao Descobrindo a direita faixa que$before_widget
é uma string obrigado novamente :).Outra maneira que encontrei para adicionar uma classe a um widget personalizado é usar a tecla ' classname ' da sua função de construção, como em:
E certifique-se de usar o padrão ' before_widget ' no seu tema ou se você usar o
register_sidebar()
function.php, faça o seguinte:Em todas as instâncias do seu widget, você terá a classe 'widget my-class-name' assim:
Você também pode chamar o construtor pai primeiro e depois anexar o nome da classe que desejar:
fonte
primeiro adicione uma classe de espaço reservado personalizada no construtor
Em seguida, substitua-o pelas classes de sua escolha com base nas opções de widget como esta
Você pode encontrar os detalhes com exemplo em http://satishgandham.com/2017/03/adding-dynamic-classes-custom-wordpress-widgets/
fonte
Você pode tentar este filtro:
fonte