De alguma forma, podemos usar wp_localize_script () para criar variáveis js globais sem um identificador de script específico que possa ser acessado de todos os arquivos js, mesmo que os scripts js não sejam enfileirados adequadamente usando wp_enqueue_script?
Este é o código que estou usando, que cria varibale para o identificador 'ajaxscript', portanto, não consigo acessar o objeto 'ajaxobject' em um arquivo js que está sendo incluído no header.php diretamente por <script src="xxx" .... />
wp_register_script( 'ajaxscript', get_bloginfo( 'template_url' ) . '/js/ajaxscript.js', array(), $version );
wp_enqueue_script( 'ajaxscript' );
wp_localize_script( 'ajaxscript', 'ajaxobject',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'ajaxnonce' => wp_create_nonce( 'itr_ajax_nonce' )
)
);
wp-enqueue-script
wp-localize-script
Subharanjan
fonte
fonte
wp_localize_script
faz de qualquer maneira. Com ambos os métodos, as variáveis são acessíveis a partir de qualquer scriptRespostas:
Em vez de usar wp_localize_script nesse caso, você pode conectar suas variáveis js em wp_head, para que estejam disponíveis para todos os arquivos js, como:
Também como sugerido por @Weston Ruter, você pode json codificar as variáveis:
fonte
json_encode
aqui, por exemplo:var ajaxurl = <?php echo json_encode( admin_url( "admin-ajax.php" ) ); ?>;
Você pode exportar todos os dados que desejar no
wp_head
gancho, como mostram as respostas acima. No entanto, você deve usarjson_encode
para preparar os dados PHP para exportar para JS em vez de tentar incorporar valores brutos em literais JS:O uso
json_encode
facilita a si mesmo e evita erros acidentais de sintaxe se a sua string incluir aspas. Ainda mais importante, o uso dejson_encode
ataques XSS impedidos.fonte
Acabei fazendo isso. Funciona agora !! Obrigado @ dot1
fonte
json_encode
vez de criar JSON manualmente.json_encode
agora :) Obrigado @WestonRuter !!Embora este não seja o meu melhor trabalho, esta é outra maneira direta de realizar a inserção de dados na resposta:
Adicione alguns dados JS ao contexto da janela:
Isso funcionará para os scripts de cabeçalho ou rodapé e não se repetirá.
fonte