Saltar al contenido

Wordpress: abre un Thickbox con contenido a través de AJAX

Solución:

El segundo parámetro para tb_show es la URL, por lo que querrá usar algo como …

<?php 
$ajax_url = add_query_arg( 
    array( 
        'action' => 'getTheContent', 
        'query_var1' => 'value1', 
        'query_var2' => 'value2' 
    ), 
    admin_url( 'admin-ajax.php' ) 
); 
?>
tb_show(tag, '<?php echo $ajax_url; ?>' );

Supongo que debe pasar la acción y cualquier variable de consulta adicional manualmente (como se indica arriba), de lo contrario, su solicitud es simplemente para admin-ajax.php, cuando lo que buscas es algo como … admin-ajax.php?action=getTheContent&someothervar=someothervalue, por lo tanto, la add_query_arg uso anterior ..

Para aclarar:

La siguiente llamada a add_query_arg

add_query_arg( 
    array( 
        'action' => 'getTheContent', 
        'query_var1' => 'value1', 
        'query_var2' => 'value2' 
    ), 
    admin_url( 'admin-ajax.php' ) 
);

Es equivalente y producirá …

http://example.com/wp-admin/admin-ajax.php?action=getTheContent&query_var1=value1&query_var2=value2

¡Sin embargo!

Habiéndome explicado ahora, me he dado cuenta de que no queremos la URL absoluta y, por lo tanto, no necesitamos la llamada a admin_url ahí. En su lugar, el código debería ser.

<?php 
$ajax_url = add_query_arg( 
    array( 
        'action' => 'getTheContent', 
        'query_var1' => 'value1', 
        'query_var2' => 'value2' 
    ), 
    'admin-ajax.php'
); 
?>
tb_show(tag, '<?php echo $ajax_url; ?>'); 

Entonces, la URL resultante se parece a esto …

admin-ajax.php?action=getTheContent&query_var1=valu1&query_var2=value2

Funciones a las que se hace referencia en los ejemplos de código anteriores:

  • Agregar argumento de consulta

    http://codex.wordpress.org/Function_Reference/add_query_arg

  • URL de administrador

    http://codex.wordpress.org/Function_Reference/admin_url

Desordenar javascript y PHP no es muy inteligente. Esta respuesta solo confunde.

tb_show es javascript add_query_arg es PHP

por lo que esta solución solo es válida en PHP y el código adecuado es

...
?>
tb_show(
  'whatever',
  <?php echo add_query_arg( array(
    'action' => 'getTheContent',
    'query_var1' => 'value1',
    'query_var2' => 'value2',
  ), 'admin-ajax.php'); ?>
);
<?php
...

Y en javascript no es válido en absoluto ya que no podemos usar add_query_arg

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *