2013-10-07 4 views
0

У меня есть функция в файле functions.php, которая делает запрос json. Это, как я называю эту функцию:Как запустить запрос AJAX без конфликтов?

define('IS_AJAX_REQUEST', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if (IS_AJAX_REQUEST){ 
loadmore(); 
} 

Приведенный выше код работает нормально, но проблема он конфликтует с другой запрос AJAX, к примеру, я вижу сообщение об ошибке сказав не может выполнить loadmore(), когда я пытаюсь загрузите изображение.

Я пробовал следовать, но никто не работал.

if (IS_AJAX_REQUEST && is_page()){ 
loadmore(); 
} 

+

if (is_page()){ 
if (IS_AJAX_REQUEST){ 
loadmore(); 
    } 
} 

+

if (IS_AJAX_REQUEST){ 
if (is_page()) loadmore(); } 
} 

А вот функция loadmore

function loadmore(){ 

    header('Content-type: application/json'); 

echo json_encode (array ('rsp'=>'ok', 

     'payload'=> DrawPostList($_GET['tribe'], $_GET['offset']), 

     'lionly'=> true, 

     'tribe'=> $_GET['tribe'], 

     'offset'=> $_GET['offset']+20)); 

exit; 
} 

Я только хочу выполнить функцию loadmore() при просмотре страницы. Как я могу это сделать ?

+0

напишите свой грузmore(); функция и точная ошибка, которую вы получаете – codepixlabs

+0

@wordpresser здесь функция loadmore. Он отлично работает без дополнительных условий. Кроме того, эта функция вызывается только при нажатии пользователем кнопки. Я получил это через Js. –

+0

Я не могу найти, что такое фактическая ошибка, но выполняете ли вы правильные шаги, чтобы сделать работу ajax в Wordpress? – codepixlabs

ответ

0
<?php 
add_action('wp_head', 'my_action_javascript'); 

function my_action_javascript() { 

    is_page() { // load script only on pages 
?> 
     <script type="text/javascript" > 
     function loadmore() { 

      var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; 
      jQuery.ajax({ 
        type: "POST", 
        url: ajaxurl, 
        data: { action : 'loadmore_trigger', var1 : 'test', var2 : 'one more' } 
      }) 
     }.done(function(response) { 
      alert(response); 

     } 
     </script> 
     <?php 
    } 
} 


add_action('wp_ajax_nopriv_loadmore_trigger', 'loadmore_trigger'); 
add_action('wp_ajax_loadmore_trigger', 'loadmore_trigger'); 

function loadmore_trigger(){ 

echo "<pre>"; 
print_r($_POST); 
exit; 

} 
?> 

<input type="submit" onclick="loadmore(); return false;"> // make ajax call on click of submit button 
+0

очень полезно. Спасибо. –

Смежные вопросы