Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Não é porque funcionou que significa que esta c...

Não é porque funcionou que significa que esta certo!

Boas práticas de programação no WordPress.

WordCamp São Paulo 2013.

Claudio Sanches

November 23, 2013
Tweet

More Decks by Claudio Sanches

Other Decks in Programming

Transcript

  1. Não é porque funcionou que significa que esta certo! Boas

    práticas de programação no WordPress
  2. Atualmente temos mais 28 mil plugins e 2 mil temas

    no repositório oficial do WordPress. Somando com plugins e temas pagos, projetos pessoais, snippets e etc, chegamos em um número incontável de linhas de código escritos por diversas pessoas ao redor do mundo.
  3. Este CAOS existe porque não basta apenas saber programar em

    PHP e JavaScript para trabalhar com WordPress. É necessário conhecer o WordPress, os seus padrões de código e boas práticas de desenvolvimento.
  4. Não importa se você desenvolve projetos Open Source ou não!

    Um dia você vai precisar dar manutenção no projeto ou morrer (e ai alguém vai assumir o filho no lugar)...
  5. O seu código ganha: • Legibilidade • Durabilidade • Compatibilidade

    • Segurança • Fácil manutenção Com padrões e boas práticas
  6. O WordPress tem o seu próprio padrão de código que

    esta documentado em "Make WordPress Core Handbook". Os padrões estão dividos em 4 partes, sendo elas CSS, HTML, JavaScript e PHP.
  7. • Indentação com tab (\t) e não com 4 espaços

    (\s\s\s\s) • Espaçamento para melhorar a legibilidade Regras gerais
  8. <input TYPE=text name=email disabled> <BR/> <?php if ( ! have_posts()

    ) : ?> <div id="post-1" class="post"> <H1 CLASS="entry-title">Oi Mundo!</H1> </div> <?php endif; ?> HTML - Errado
  9. <input type="text" name="email" disabled=" disabled"> <br /> <?php if (

    ! have_posts() ) : ?> <div id="post-1" class="post"> <h1 class="entry-title">Oi Mundo!</h1> </div> <?php endif; ?> HTML - Certo
  10. var map = { ready: 9, 'you are': 15 };

    for(i=0;i<100;i++){ ul.append('<li>VT é chato vezes '+i+'</li>'); } JavaScript - Errado
  11. var map = { ready: 9, 'you are': 15 };

    for( i = 0; i < 100; i++ ){ ul.append( '<li>VT é chato vezes ' + i + '</li>' ); } JavaScript - Certo
  12. <?php echo $var; ?> echo "<a href=\"$url\">WordPress</a>"; if ( condition

    ) { function_example_1( $param1, $param2 ); } else { new Class_Example($param); } PHP - Certo
  13. add_filter( 'the_content', 'example' ) apply_filters( 'your_filter', $param1, $param2, $param3, $etc...

    ) add_action( 'publish_post', 'example' ) do_action( 'your_action', [$params...] ) Filtros e Ganchos (filters and actions)
  14. NÃO USE query_posts()! Loops principais devem ser alterados pelo gancho

    pre_get_posts. E os secundários devem ser feitos usando WP_Query. Query/Loop de posts
  15. function exclude_category( $query ) { if ( $query->is_home() && $query-

    >is_main_query() ) { $query->set( 'cat', '-1,-1347' ); } } add_action( 'pre_get_posts', 'exclude_category' ); Query/Loop de posts
  16. <?php $the_query = new WP_Query( $args ); ?> <?php if

    ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <h2><?php the_title(); ?></h2> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php endif; ?> Query/Loop de posts
  17. NUNCA adicione CSS e Javascript direto do <head> do seu

    tema. Todo script deve ser registrado no functions.php usando as funções: wp_enqueue_script() e wp_enqueue_style() CSS e JavaScript
  18. function js_fn() { wp_enqueue_script( 'name', $path . '/js/custom_script.js', array( 'jquery'

    ) ); } add_action( 'wp_enqueue_scripts', 'js_fn' ); CSS e JavaScript
  19. NUNCA USE JQUERY DO GOOGLE! function js_fn() { wp_enqueue_script( 'jquery'

    ); } add_action( 'wp_enqueue_scripts', 'js_fn' ); CSS e JavaScript
  20. Forma correta de usar jQuery: jQuery( document ).ready( function( $

    ) { // agora você pode usar $ aqui! }); (function( $ ) { // $ funciona aqui! })( jQuery ); CSS e JavaScript
  21. Toda vez que você ver uma função do WordPress, procure

    ela no Codex! Esta é a melhor forma de conhecer e dominar o WordPress.
  22. Este documento esta licenciado com GPLv2. É possível encontrar uma

    copia da licença no seguinte link: http://www.gnu.org/licenses/gpl-2.0.txt Licença