我在这里到处寻找广泛的谷歌搜索,但没有发现任何特定的问题。我正在尝试创建一个典型的“加载更多”#34;按钮功能适用于自定义帖子类型分类存档页面。这就是我到目前为止所拥有的:
// Load more posts
add_action('wp_ajax_load_posts_by_ajax', 'load_posts_by_ajax_callback');
add_action('wp_ajax_nopriv_load_posts_by_ajax', 'load_posts_by_ajax_callback');
function load_posts_by_ajax_callback() {
$the_issue_key = $_POST['the_issue_key'];
check_ajax_referer('load_more_posts', 'security');
$paged = $_POST['page'];
$queried_object = get_queried_object();
$args = array(
'post_type' => 'case_study',
'post_status' => 'publish',
'posts_per_archive_page' => '2',
'paged' => $paged,
);
$my_posts = new WP_Query( $args );
if ( $my_posts->have_posts() ) :
?>
<?php while ( $my_posts->have_posts() ) : $my_posts->the_post() ?>
<h2><?php the_title() ?></h2>
<p><?php echo $queried_object; ?></p>
<?php the_excerpt() ?>
<?php endwhile ?>
<?php
endif;
wp_die();
}
剧本:
// Script
var ajaxurl = 'http://ovo2/wp-admin/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) {
$('.my-posts').append(response);
page++;
});
});
});
这样可以正常工作,但是当我真正需要的是特定于分类的帖子时,它会加载所有case_study CPT帖子。在我的存档页面中,我已经添加到$ args数组中,显示在页面加载上的前两个帖子:
'tax_query' => array (
array (
'taxonomy' => $queried_object->taxonomy,
'field' => 'id',
'terms' => $queried_object->term_id,
),
),
它提取了分类法特定的帖子但是当我将它添加到我的函数文件中的函数来加载更多的帖子时,它不起作用。很明显它与无法将变量从get_queried_object
从php传递到脚本有关,但我不知道如何解决这个问题。
我也尝试使用wp_localize_script
,但无法正确设置。
非常感谢任何帮助!
答案 0 :(得分:0)
作为解决我的问题并获得我需要的功能的最后努力,我决定寻找一个可以做我需要的一切信誉的插件,我实际上找到了一个:AJAX Load More
使用Filters插件,我可以在10分钟内设置我自己试着做近8小时的事情。虽然它的功能在范围上更具体,但我会把这个插件放在ACF Pro的专业性和支持方面。我在网站构建中使用的插件非常少,但我会将这个插件添加到列表中。