ShortCode API

Alyen

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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ajuda WordPress © 2017 - Todos os direitos reservados.Desenvolvido por AlyenStudio

Send this to a friend