Open a Thickbox with content trough AJAX

The second parameter for tb_show is the URL, so you’ll want to use something like..

<?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; ?>' );

I’d guess you need to pass the action and any additional query vars manually(as per above), else your request is simply for admin-ajax.php, when what you are looking for is something along the lines of … admin-ajax.php?action=getTheContent&someothervar=someothervalue, hence the add_query_arg usage above..

For clarification:

The following call to add_query_arg

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

Is equivalent to and will produce …

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

However!

Having now explained myself i’ve come to realise we don’t want the absolute URL and thus don’t need the call to admin_url in there. The code should instead be.

<?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; ?>'); 

So the resulting URL looks something like this..

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

Functions referenced in the above code samples:

Leave a Comment