26 de novembro de 2011  //  7 Comentários  //  Categorias: Tutoriais, WordPress

Utilizando Shortcodes no WordPress



Sempre tenho em mente, em qualquer projeto, prever soluções para facilitar ao máximo a vida do usuário. Por exemplo, pedir para o usuário adicionar HTML no conteúdo do projeto é muito arriscado, principalmente porque isso com certeza vai gerar um suporte que poderia ser evitado. É ai que entra os Shortcodes.

Shortcode

Um Shortcode nada mais é do que uma expressão que pode ser utilizada dentro de qualquer conteúdo do WordPress – páginas ou posts – que retornará um código HTML pré-estabelecido.

Exemplo:

Ativando

Para nosso exemplo, vamos criar um Shortcode que retornará códigos HTML suficientes para adicionar um vídeo do YouTube ao conteúdo – não é muito útil, eu sei, mas serve como exemplo. ^^

Adicionamos então uma função no arquivo functions.php do seu tema e apontamos ela para o gatilho add_shortcode informando o nome do nosso Shortcode. Desta forma:

Para utilização o usuário pode simplesmente adicionar ao conteúdo o Shortcode desta forma:

Ou algo mais elaborado:

Entendendo

Através da função add_shortcode criamos o Shortcode youtube atribuindo-o a função shotcode_youtube.

Em seguida, declaramos a função shortcode_youtube que irá receber dois parâmetros. Tendo como base nosso segundo exemplo, a função recebera na variável $att em array o parâmetro width=500 e showinfo=1, além do endereço do vídeo na variável $content.

Note que se a variável $att for vazia, nossa função garante alguns valores padrões.

Utilizando fora do conteúdo

Se você precisar utilizar um Shortcode dentro do seus arquivos de tema, neste caso será necessário chamar a função do_shotcode desta forma:

Conclusão

No meu último trabalho, o projeto possuía diversas personalizações, onde criei vários Shorcodes. Para facilitar ainda mais, integrei todos com o editor do WordPress. O resultado foi além do esperado para o usuário que ficou encantado com o novo sistema de administração, muito mais eficiente e fácil de utilizar. =D

Termos de busca

Quer copiar esse post no seu site? Você pode!

Segundo a licença da Creative Commons 3.0 (CC BY SA 3.0) você pode copiar e distribuir esse conteúdo desde que faça menção ao autor original, para isso é só copiar esse código no final do artigo quando for publicá-lo em seu site:

<p>Artigo originalmente publicado em <em>26 de novembro de 2011</em> por <strong><a href="http://pedroelsner.com/" title="Pedro Elsner, Profissional de TI - São Paulo">Pedro Elsner</a></strong>: <a href="http://pedroelsner.com/2011/11/criando-shortcodes-para-wordpress/" title="Utilizando Shortcodes no WordPress">Utilizando Shortcodes no WordPress</a></p>
A não menção ao autor original da obra implicará em cópia e/ou distribuição ilegal de propriedade intelectual, o que é crime segundo a Lei n.º 9.610.
  • Leonardo Tomé

    Olá Pedro!

    Parabéns pelo post!!

    Sou leigo em php e gostaria de sua ajuda numa tarefa.
    Tenho um plugin que lista os anivesariantes do mês e estou fazendo umas modificações nele. Uma das modificações que fiz foi inserir um shortcode [niver] para que eu possa exibir a lista em qualquer parte do post. No arquivo do plugin eu inseri a seguinte linha:

    add_shortcode(‘niver’, ‘nbday_month’);

    * nbday_month é o nome da função no plugin que gera a lista de aniversariantes do mês.

    E deu certo (em partes)…

    Quando coloco a tag [niver] ele retorna a lista de aniversariantes do mês gerada pelo plugin, porém não importa onde eu insira a tag, ela sempre aparece na parte superior ao texto.

    Você poderia me ajudar a consertar isso?

    Grato!

  • Leonardo, manda um print da tela e o código do plugin no meu e-mail.
    Valeu!

  • Leonardo Tomé

    Para qual e-mail eu devo mandar o código e os prints?

  • Nesta página você tem todos os meus contatos:
    http://pedroelsner.com/contato/

  • Leonardo Tomé

    Acabei de enviar para o seu gmail!

  • Douglas

    Muito obrigado , estava querendo saber como que inseria dentros dos arquivos , e vc explicou , usando a função do_shortcode() . Valeu muito !!!

  • Cristy

    No exemplo dado, como faço pra inserir um codigo php no lugar do link do youtube? tipo, mostrar este codigo

    user_url; ?>

    no lugar do link do youtube?

    Desde já agradeço! Otimo post!