Como funciona um código curto?

Eu sei como usar códigos curtos, mesmo fazendo eles, mas o que eu preciso entender é que um shortcode é um texto simples armazenado no database como um conteúdo de publicação, então, como um texto simples como esse pode ser convertido em dynamic.

O que eu quero saber é como um texto x pode ser tratado antes que o servidor o envie para o navegador para se comportar de forma desfavorável?

Solutions Collecting From Web of "Como funciona um código curto?"

Ao usar the_content() , o WordPress executará vários filtros para processar o texto que vem do editor. Esses filtros processam o conteúdo antes de serem enviados para o navegador. do_shortcode é o filtro que manipula os códigos de curto.

De /wp-includes/default-filters.php :

 // Shortcodes add_filter( 'the_content', 'do_shortcode', 11 ); // AFTER wpautop() 

do_shortcode() é usado para pesquisar conteúdo para shortcodes e filtrar os shortcodes através de seus ganchos.

Você pode aplicar o filtro do_shortcode a qualquer string. Por exemplo, se você tiver uma checkbox de meta com uma área de texto e você gostaria de permitir que os usuários do_shortcode shortcodes na área de texto, você poderia conectar o filtro do_shortcode para lidar com isso.

Um exemplo de código curto:

 [my-shortcode param1=something param2=value]Text...[/my-shortcode] 

Quando o WordPress encontra este shortcode no conteúdo, ele executará a function associada à shortcode tag my-shortcode .

 /** * An example shortcode. * * @param array $atts * @param string $content * @param string $tag Shortcode tag * @return string */ add_shortcode( 'my-shortcode', 'wpse_example_shortcode' ); function wpse_example_shortcode( $atts, $content = '', $tag ) { $a = shortcode_atts( [ 'param1' => false, 'param2' => false, ], $atts ); // code... return $content . '!!!'; } 

Neste caso, o WordPress executará a function wpse_example_shortcode() passando $atts (parâmetros e seus valores, por exemplo, param1, param2), $content ( Text … ) e $tag (a tag shortcode usada, my-shortcode ).

Os códigos de curto prazo válidos (incluindo seus parâmetros e conteúdo) serão substituídos pela saída da function de retorno de chamada com a qual eles estão associados. Os códigos abreviados inválidos serão emitidos exatamente como foram inseridos no back-end.

Aqui está uma pequena nota:

A API do shortcode evolui em torno de preg_replace_callback onde definimos as devoluções de chamada personalizadas com nossas definições de shortcode.

Os códigos de curto no texto são analisados ​​com um padrão de expressão regular complexo que você pode verificar no get_shortcode_regex() .

A implementação deste no núcleo fica mais complicada à medida que apresentamos os detalhes 😉