Seria uma maneira correta de enfileirar o script usando o loop foreach?

4

Seria uma maneira correta de enfileirar os scripts usando o loop foreach apenas para jquery , jquery-ui-widge t, jquery-UI-accordion , jquery-ui-slider , jquery-ui-tabs , jquery-ui-datepicker , Jquery-ui-dialog e Jquery-ui-button porque tenho que escrevê-lo muitas vezes, então

Eu fiz assim:

 $jquery_ui = array(
    'jquery',
    'jquery-ui-core',
    'jquery-ui-widget',
    'jquery-ui-accordion',
    'jquery-ui-slider',
    'jquery-ui-tabs',
    'jquery-ui-datepicker',
    'jquery-ui-dialog',
    'jquery-ui-button',
 );

 // Framework JS
foreach ($jquery_ui as $ui) {
    wp_enqueue_script($ui);
}

Então, eu só quero saber que essa preguiça é um caminho certo ou não:)

    
por Owaiz Yusufi 27.07.2017 / 17:35

2 respostas

1

Sim, você pode. Mas, para garantir que o script ainda não tenha sido registrado ou enfileirado, use wp_script_is() da seguinte forma:

foreach( $jquery_ui as $ui ) {
    if( !wp_script_is( $ui ) ) {
        wp_enqueue_script( $ui );
    }
}

Isso evitará conflitos devido a outra instância do script já estar enfileirada.

    
por Jack Johansson 27.07.2017 / 17:52
0

Na verdade, é ainda mais fácil do que isso. wp_enqueue_script() aceita uma matriz de identificadores de script, então você pode simplesmente fazer isso:

$jquery_ui = array(
    'jquery',
    'jquery-ui-core',
    'jquery-ui-widget',
    'jquery-ui-accordion',
    'jquery-ui-slider',
    'jquery-ui-tabs',
    'jquery-ui-datepicker',
    'jquery-ui-dialog',
    'jquery-ui-button',
 );

wp_enqueue_script( $jquery_ui );

Não há necessidade de verificar se o script já foi registrado usando wp_script_is() , pois wp_enqueue_script() manipula isso para você e nunca enfileira o mesmo script (handle) duas vezes. Chamando wp_script_is() também, você está executando uma verificação idêntica duas vezes desnecessariamente.

    
por shea 15.10.2017 / 07:49