ShortCode API

Por el 12 de julho de 2009 | 5:00 pm

De entre todas as novidades de WordPress, ShortCode é uma das que menas importancia foi dada. E a verdade é que vale a pena perder um momento em explicar de que vai esta nova funcionalidade.

wp25_shortcode

BBCode

Os usuários de foruns, conhecem o formato BBCode, aquele composto de tags envoltos por [], similar ao formato HTML. Este formato está muito estendido em internet e é fácil de memorizar. Vejamos um exemplo:
[sourcecode language=”html”][b]Este text en negrita[/b] ==> Este text en negrita[/sourcecode]

Partindo desta base podemos passar a definir que é ShortCode.

ShortCode

ShortCode API, é um conjunto de funções que permite definir nossos próprios tags BBCode para inserí-los dentro de nossos posts. A graça deste sistema é que podemos executar código PHP dentro do conteúdo de nossos posts. O que além de ser muito interessante, evidentemente é muito perigoso.

add_shortcode($tag, $function);

[sourcecode language=”php”]// [footag foo=”bar”]
function footag_func($atts) {
return @”foo = {$atts[‘foo’]}”;
}
// My Caption
function caption_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
‘class’ => ‘caption’,
), $atts ) );

return ‘‘ . $content . ‘‘;
}

add_shortcode(‘caption’, ‘caption_shortcode’);
add_shortcode(‘footag’, ‘footag_func’);
[/sourcecode]

Se olhamos o código anterior, vemos que o tag BBCode se define mediante a função addshortcode(), encarregada de relacionar o tag com a função correspondente.

remove_shortcode($tag);

Função que nos permite eliminar o funcionamento de um shortcode, para isso indicaremos o tag que queremos eliminar das disponíveis.
[sourcecode language=”php”]remove_shortcode(“caption”); // Eliminamos [/caption][/sourcecode]

remove_all_shortcodes();

Se desejamos eliminar todos os shortcodes disponíveis em nosso WordPress, simplesmente temos que usar esta função e se encarregará de desativar a todos.
[sourcecode language=”php”]remove_all_shortcodes(); // Todos los shortcodes eliminados[/sourcecode]

shortcode_atts($pairs, $atts);

Função que nos devolve um array de pares com os atributos padrão para nossos shortcodes.
[sourcecode language=”php”]$a = shortcode_atts( array(
‘title’ => ‘My Title’
‘foo’ => 123,
), $atts );
[/sourcecode]

do_shortcode($content);

Função que nos devolve o resultado da execução do texto com o shortcode substituído pela função.
[sourcecode language=”php”]do_shortcode(‘My Caption’); // My Caption[/sourcecode]

Onde pôr este código?

WordPress não indica onde localizar o código correspondente aos shortcodes, mas o arquivo que estão definidas as funções que fazem possível o funcionamento, está localizado em wp-includes/shortcodes.php. Nele não faz referência a nenhum arquivo externo, localizado numa rota algo mais pessoal como wp-content/.

Como quase todo o código de WordPress pode ser inserido em qualquer lugar e de qualquer forma:

  • Plugin
  • Theme (functions.php)
  • my-hacks.php

Mas talves a forma mais fácil seria ter sido adicionar um par de linhas e sacar do core de WordPress uma funcionalidade que permite tal nível de personalização.
[sourcecode language=”php”] if ( file_exists(ABSPATH . ‘wp-content/my-shortcodes.php’) )
require_once (ABSPATH . ‘wp-content/my-shortcodes.php’);[/sourcecode]

Algo assim ao início do arquivo shorcodes.php? Desta forma dispomos de um arquivo externo que nos permite ter definidos nossos shortcodes independente de todas as futuras atualizações…

via anieto2k.com

Temas:


Ajuda WordPress © 2009-2017 Todos os direitos reservados.Desenvolvido por Alyen Studio