ShortCode API

12/07/2009 - - Comentários 0

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 ShortCode API

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:

[b]Este text en negrita[/b] ==> <strong>Este text en negrita</strong>

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);

// [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 '<span class="' . attribtue_escape($caption) . '">' . $content . '</span>';
}

add_shortcode('caption', 'caption_shortcode');
add_shortcode('footag', 'footag_func');

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.

remove_shortcode("caption"); // Eliminamos [/caption]

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.

remove_all_shortcodes(); // Todos los shortcodes eliminados

shortcode_atts($pairs, $atts);

Função que nos devolve um array de pares com os atributos padrão para nossos shortcodes.

$a = shortcode_atts( array(
'title' => 'My Title'
'foo' => 123,
), $atts );

do_shortcode($content);

Função que nos devolve o resultado da execução do texto com o shortcode substituído pela função.

do_shortcode('My Caption'); // <span class="headline">My Caption</span>

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.

 if ( file_exists(ABSPATH . 'wp-content/my-shortcodes.php') )
require_once (ABSPATH . 'wp-content/my-shortcodes.php');

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

Notícias relacionadas:

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste site reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.