O que extrai (shortcode_atts (array (do?

22

O códice diz

  

shortcode_atts() combina atributos de shortcode do usuário com atributos conhecidos e preenchimentos padrões quando necessário. O resultado conterá todas as chaves dos atributos conhecidos, mesclados com valores de atributos shortcode.

Não faz muito sentido para mim (sou novato).

Aqui está um exemplo:

function wps_trend($atts) {
extract( shortcode_atts( array(
'w' => '500', 
'h' => '330',
'q' => '',
'geo' => 'US',
), $atts));
$h = (int) $h;
$w = (int) $w;
$q = esc_attr($geo);
ob_start();  

Por favor, você pode explicar?

    
por mattnewbie 15.05.2013 / 21:51
fonte

1 resposta

30

shortcode_atts() funciona como array_merge() : mescla a segunda lista de argumentos para o primeiro. A diferença é: Ele mescla apenas as chaves presentes no primeiro argumento ( $default ).

extract() pega as chaves do array, define como nomes de variáveis e seus valores como valores variáveis. 'w' => '500' no seu exemplo se torna $w = '500' .

Não use extract() . Esse estilo de código muito ruim. Seu uso foi depreciado até mesmo no núcleo , e isso significa algo…:)

Seu exemplo deve ser escrito como:

$args = shortcode_atts( 
    array(
        'w'   => '500',
        'h'   => '330',
        'q'   => '',
        'geo' => 'US',
    ), 
    $atts
);
$w = (int) $args['w'];
$h = (int) $args['h'];
$q = esc_attr( $args['q'] );
    
por fuxia 15.05.2013 / 21:57
fonte

Tags