我不知道为什么这不起作用。我在我的本地浏览器上尝试过这个功能。但是当我尝试在我的实时网站上实现这一点时,就会出现错误。
这是我的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 :(得分:1)
您收到响应HTTP status code 500.这表示发生了服务器故障。在这种情况下,您的客户端javascript代码不应该是问题。
请检查您的本地开发环境与您的实时网站之间的差异(例如,网络服务器配置,php版本......)。
答案 1 :(得分:1)
我刚刚找到了解决办法。使用get_term_link函数有问题。
这
$link = get_term_link( $tid );
要
$term_link = get_term_link( $term->slug, $term->taxonomy );
这很奇怪,因为get_term_link($ tid)在我当地工作。