Qual é a maneira correta de um tema suportar UIs de plug-in?

4

Por exemplo, se meu plug-in estiver criando um formulário em uma página, o que posso fazer para tornar o processo mais fácil para os desenvolvedores de tema também mudarem o formulário?

    
por Roman 18.01.2012 / 05:32

2 respostas

3

Antes de mais nada, forneça um formulário HTML padrão bem formado . Use <label> , <fieldset> e <legend> quando apropriado. Essa marcação fornece uma boa estrutura para o estilo CSS. Adicionar algumas classes CSS também pode ajudar.

Forneça um filtro que permita aos desenvolvedores ajustar o formulário padrão.

Para ir ainda mais longe, você pode permitir que os desenvolvedores reescrevam completamente a saída do formulário para seus gostos, permitindo que eles forneçam um arquivo de modelo de formulário personalizado dentro de um tema.

if ($custom_form = locate_template('plugin_form.php')) {
    // Load custom form
    include $custom_form;
} else {
    // Default form with filter
    $form = '<form><!-- Default HTML --></form>';
    $form = apply_filters('pluginprefix_form_output', $form);
    echo $form;
}

Dê uma olhada na função get_search_form() em wp-includes/general-template.php para um bom exemplo de implementação semelhante.

    
por Geert 18.01.2012 / 10:26
3

Em geral, menos é mais, ou seja, não há estilo além de adicionar classes padrão do WP. Se o seu plugin é para misturar, ele deve se parecer com o resto.

No entanto, se você tiver motivos suficientes para acreditar que a saída do seu plug-in deve ter um estilo diferente do restante do site (isto é, se você adicionar um recurso visual distinto), poderá adicionar - além das classes padrão nomes de classes para os elementos que você cria. Mantenha o menor número de classes possível no topo da hierarquia, por exemplo,

<div style="am01_div">
  <ul>
    <li>Test</li>
  </ul>
</div>

é melhor que

<div style="am01_div">
  <ul style="am01_ul">
    <li style="am01_li">Test</li>
  </ul>
</div>

Em seguida, os usuários podem criar um tema filho de seu tema principal em cujo CSS eles podem adicionar informações de estilo para seus elementos.

(Eu na verdade costumava pensar que plugins deveriam fornecer opções para estilizar sua saída, mas eu mudei de idéia. A separação de interesses deve ser aplicada aqui: você cria uma saída (razoável), estilo de usuário se quiser.)

    
por Raphael 18.01.2012 / 11:15