2016-06-08 5 views
1

Я не знаю, почему это не работает. Я пробовал это в своем локальном браузере, и он работает. Но когда я пытаюсь реализовать это на своем веб-сайте, он дает эту ошибку.Не удалось загрузить ресурс: сервер ответил статусом 500 (Внутренняя ошибка сервера) на вызов AJAX

Вот мой functions.php

add_action('wp_ajax_get_myposts', 'ajax_get_myposts'); 
add_action('wp_ajax_nopriv_get_myposts', 'ajax_get_myposts'); 

function ajax_get_myposts() { 

    $countterms = wp_count_terms('item_category'); 
    $offset = 4; 
    $number = $countterms - $offset; 
    $terms = get_terms('item_category', array(
     'hide_empty' => true, 
     'orderby' => 'name', 
     'order'  => 'ASC', 
     'offset'  => $offset, 
     'number'  => $number, 
)); 

    echo '<div class="vc_row wpb_row vc_row-fluid home-category-row"> 
     <div class="wpb_column vc_column_container vc_col-sm-12"> 
    '; 

    if($terms) { 

    foreach ($terms as $term) { 

     $tid = $term->term_id; 
     $name = $term->name; 
     $link = get_term_link($tid); 
     $item_cat_id = 'javo_item_category_' .$tid. '_featured'; 
     $src = wp_get_attachment_image_src(get_option($item_cat_id), array(270,250), false); 
     $alt = get_post_meta(get_option($item_cat_id), '_wp_attachment_image_alt', true); 

     echo ' 

     <div class="wpb_column vc_column_container vc_col-sm-3"> 
     <div class="wpb_wrapper"> 
     <div class="category-box"> 
     <div class="category-box-overlay" style="background:rgba(0,0,0,0.5);"></div> 
     <img src="'.$src[0].'" style="" class=" category-box-img ultb3-img-center" alt="'.$alt.'"> 
     <div class="category-info-box"> 
     <div class="category-box-title">'.$name.'</div> 
     <a href="'.$link.'" class="category-box-btn ultb3-btn">View More<i class="Defaults-angle-right"></i></a> 
     </div> 
     </div> <!-- custom-category-box --> 
     </div> <!-- wpb_wrapper --> 
     </div> <!-- wpb_column --> 
     '; 

    } 

    } else { 
     echo '<div>No posts</div>'; 
    } 

    echo '</div></div>'; 

wp_die(); 

}

Мой Ajax вызовов

(function($) { 

    'use strict'; 

    var main = { 
     init: function() { 
      this.myajax(); 
     }, 

     myajax: function() { 
      $('button.myButton').on('click', function() { 
       $.ajax({ 
        type: 'POST', 
        url: '/wp-admin/admin-ajax.php', 
        dataType: 'html', 
        data: { 
         action: 'get_myposts' 
        }, 
        beforeSend: function() { 
         $('#allpost').append('<img id="ajax-preloader" src="/wp-content/uploads/2016/06/Preloader_10.gif">'); 
        }, 

        success: function(result) { 
         console.log(result); 
         $('button.myButton').hide(); 
         $('#allpost').hide().append(result).fadeIn(); 
        }, 
        error : function(e) { 
         console.log(e); 
        }, 

        complete: function() { 
         $('body').find('#ajax-preloader').remove(); 
        } 

       }); 
      }); 
     } 
    }; 

    main.init(); 

})(jQuery); 

Есть ли тот, кто может предложить мне что-то для моей проблемы.

+0

какая ошибка ????? –

+0

Это была ошибка функции wordpress, но теперь исправлена. благодаря – ccmanz

ответ

1

Вы получаете ответ HTTP status code 500. Это указывает на то, что произошел сбой сервера. В этом случае ваш javascript-код на стороне клиента не должен быть проблемой.

Проверьте различия между локальной средой разработки и вашим веб-сайтом (например, конфигурацией веб-сервера, версией PHP, ...).

1

Я только что нашел исправление. С использованием функции get_term_link было что-то не так.

От

$link = get_term_link($tid); 

Для

$term_link = get_term_link($term->slug, $term->taxonomy); 

Это было странно, так как get_term_link ($ TID) работал в моем местном.

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

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