我创建了一个新的CPT,名为Event and inside Event,分类法(或我不知道正确名称的术语)名为month,内部有12个月。
到目前为止,我成功地显示了整个月份,并通过ajax对其进行过滤,但在该月份内,每次只显示3篇文章,当我单击“加载更多ajax”按钮时,它会忽略分类月份。php并显示所有事件。它在所有视图中都可以正常工作,但在每个月内都不行。
请以一月选项卡为例:http://esma1.staging.wpengine.com/trade-fairs/
我的分类月。php
<div id="post-ajax" class="eventb">
<div id="inside">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<section class="blocks">
<div class="content_element">
<a href="<?php echo get_permalink();?>"><h2><?php the_title(); ?></h2></a>
<div class="content_text">
<p><?php the_content(); ?></p>
<p>Month: <?php the_terms( $post->ID, \'month\', \' \', \' / \' ); ?></p>
</div>
</div>
<div class="single_image_element">
<div class="imgwrap"><div class="memberimg"><?php the_post_thumbnail(); ?></div></div>
</div>
</section>
<?php endwhile; endif; ?>
</div>
<div class="clear"></div>
<div class="post_nav">
<div class="loadmore">Load More</div>
</div>
脚本
var ajaxurl = "<?php echo admin_url( \'admin-ajax.php\' ); ?>";
var page = 2;
jQuery(function($) {
$(\'body\').on(\'click\', \'.loadmore\', function() {
var data = {
\'action\': \'load_posts_by_ajax\',
\'page\': page,
\'security\': \'<?php echo wp_create_nonce("load_more_posts"); ?>\'
};
$.post(ajaxurl, data, function(response) {
$(\'#inside\').append(response);
page++;
});
});
});
功能
function load_posts_by_ajax_callback() {
check_ajax_referer(\'load_more_posts\', \'security\');
$paged = $_POST[\'page\'];
$args = array(
\'post_type\' => \'event\',
\'post_status\' => \'publish\',
\'posts_per_page\' => \'3\',
\'paged\' => $paged,
);
$my_posts = new WP_Query( $args );
if ( $my_posts->have_posts() ) :
?>
<article>
<?php while ( $my_posts->have_posts() ) : $my_posts->the_post() ?>
<section class="blocks">
<div class="content_element">
<a href="<?php echo get_permalink();?>"><h2><?php the_title(); ?></h2></a>
<div class="content_text">
<p><?php the_content(); ?></p>
<p>Month: <?php the_terms( $post->ID, \'month\', \' \', \' / \' ); ?></p>
</div>
</div>
<div class="single_image_element">
<div class="imgwrap"><div class="memberimg"><?php the_post_thumbnail(); ?></div></div>
</div>
</section>
<?php endwhile ?>
</article>
最合适的回答,由SO网友:jdm2112 整理而成
假设函数与动作挂钩load_posts_by_ajax
是你的load_posts_by_ajax_callback()
代码(似乎是一个合理的假设),可以轻松修改查询参数。
您提到“仅显示3篇文章”,这就是代码的设计目的。如果希望显示10篇文章,请更新列出的posts\\u per\\u page参数。
\'posts_per_page\' => \'3\',
问题的大部分是通过分类查询来解决的。这就是如何将查询结果限制为特定分类法(月份)中的特定术语(一月)。然而,我在猜测这个答案中的术语slug和分类名称。
假设有month
为注册的分类法event
post类型,类似这样的查询应该可以:
function load_posts_by_ajax_callback() {
check_ajax_referer(\'load_more_posts\', \'security\');
$paged = $_POST[\'page\'];
$args = array(
\'post_type\' => \'event\',
\'post_status\' => \'publish\',
\'posts_per_page\' => \'10\', // assuming you want 10 posts returned
\'tax_query\' => array( // a tax query is always an array of arrays
array(
\'taxonomy\' => \'month\', // assuming again; your taxonomy slug
\'field\' => \'slug\',
\'terms\' => \'january\', // you will want to assign this programmatically from the JS; not evident in the code provided
)
),
\'paged\' => $paged,
);
$my_posts = new WP_Query( $args );
// remainder of function code is unchanged...
在这个回答中做出了几个假设。如果您可以在问题中添加相关代码,我可能可以更新。
编辑:我对分页方面没有100%的信心。您提供的代码使用分页和IIRC,这应该通过offset
WP\\u查询的参数。也许是另外一个问题?让我们首先解决Ajax税务查询。