我目前正在从事一个项目,我试图使用Ajax调用子类别内容。子类别名称将作为菜单列出,以显示其各自的内容。
我在这里找到了一个教程link, 然后开始按照步骤进行小调整。不幸的是,我没有让函数工作。单击子类别名称后,没有显示任何内容。我收到一条错误消息,说“ReferenceError:cat\\u ajax\\u get未定义”。
我相信这个错误是指下面的“index.php中的代码”。
<li id="cat-<?php echo $cat->term_id; ?>"><a class="<?php echo $cat->slug; ?> ajax" onclick="cat_ajax_get(\'<?php echo $cat->term_id; ?>\');" href="#"><?php echo $cat->name; ?></a></li>
下面是我在wordpress主题中使用的代码。
索引中的代码。php-
<nav class="category-group">
<?php
$categories = get_categories(array(\'child_of\' => 5));
?>
<ul class="filter">
<?php foreach($categories as $cat) { ?>
<li id="cat-<?php echo $cat->term_id; ?>"><a class="<?php echo $cat->slug; ?> ajax" onclick="cat_ajax_get(\'<?php echo $cat->term_id; ?>\');" href="#"><?php echo $cat->name; ?></a></li>
<?php } ?>
</ul>
</nav>
<div id="category-post-content"></div>
JS中的代码-
jQuery(document).ready(function($){
function cat_ajax_get(catID) {
$(".filter a.ajax").removeClass("selected");
$(".filter a.ajax").addClass("selected");
var ajaxurl = \'<?php echo admin_url( "admin-ajax.php" ); ?>\';
$.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action": "load-filter", cat: catID },
success: function(response) {
$("#category-post-content").html(response);
return false;
}
});
}
});
函数中的代码。php-
add_action( \'wp_ajax_nopriv_load-filter\', \'prefix_load_cat_posts\' );
add_action( \'wp_ajax_load-filter\', \'prefix_load_cat_posts\' );
function prefix_load_cat_posts () {
$cat_id = $_POST[ \'cat\' ];
$args = array (
\'cat\' => $cat_id,
\'posts_per_page\' => 10
);
$posts = get_posts( $args );
global $post;
ob_start ();
foreach ( $posts as $post ) {
setup_postdata( $post ); ?>
<div id="post-<?php echo $post->ID; ?>" <?php post_class(); ?>>
<div class="article">
<div class="article__thumbnail"><?php the_post_thumbnail();?></div>
<div class="article__content">
<div class="article__header"><?php the_title(); ?></div>
<div class="article__brief"><?php the_content(); ?></div>
</div>
</div>
</div>
<?php } wp_reset_postdata();
$response = ob_get_contents();
ob_end_clean();
echo $response;
die(1);
}
就我个人而言,我怀疑函数代码一定有问题。因为我正在调用子类别内容,所以应该<;\'cat“=$cat\\u id>是其他的吗?在JS代码中,没有任何<;\'单击“”命令。如果是这样,如何添加“类”?
有人能给我一些指引或线索让奇迹发生吗?
非常感谢。