26 de novembro de 2011  //  10 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!

  • Vinni Sicca

    Olá Pedro!

    Estou tentando usar o widget oficial do Twitter para mostrar o feed da página x, mas eu só consigo mostrá-lo em widget em páginas internas, como eu faço para criar um shortcode que mostrar exatamente a mesma coisa que o widget?
    Agradeço desde já a ajuda!

  • Edu Anchieta

    Boa noite amigo, estou precisando aplicar um dentro de um widget de Texto, mas sempre dá erro, pode me dar alguma dica?

  • Wesley Oliveira

    ola Pedro Parabens pelo trabalho eu gostaria que vc me ajudasse eu criei um Shortcodes tatraves de um plugin wordpree (tablepress) so que ao colar na pagina ou post na funciona pode me ajudar ?