Why does is
functions not work inside an Ajax function? Except for is_user_logged_in
?
I also tried using get_query_var
and it did not work.
jQuery:
jQuery('.post-modal').live('click', function(e) {
e.preventDefault();
var post_id = jQuery(this).data('post-id');
jQuery.ajax({
type: 'POST',
url: mysite.ajax_url,
data: {
'action' : 'post_modal_content',
'post_id' : post_id
},
success: function(response) {
var json = jQuery.parseJSON(response);
jQuery('#post-modal .content').html(json.html);
}
});
});
PHP:
function post_modal_content() {
$post_id = $_POST['post_id'];
if (is_author()) {
set_query_var('post_id', $post_id);
ob_start();
get_template_part('content-post-modal');
$html = ob_get_contents();
ob_end_clean();
$response = array('html' => $html);
echo json_encode( $response );
exit;
}
}
add_action( 'wp_ajax_post_modal_content', 'post_modal_content' );
add_action( 'wp_ajax_nopriv_post_modal_content', 'post_modal_content' );
If I am on the author page it does not work, but if I take the check everything works fine.