Я везде искал здесь, а также широко просматривал поиск в Google, но не нашел ничего специфического для этой проблемы. Я пытаюсь создать типичную функциональность кнопки «загрузить больше», которая работает на странице архива таксономии произвольного типа записей. Вот что у меня есть на данный момент:
// 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, но не смог правильно его настроить.
Любая помощь будет принята с благодарностью!






В качестве последней попытки решить мою проблему и получить необходимую мне функциональность я решил поискать надежный плагин, который мог бы делать все, что мне нужно, и я действительно нашел один: AJAX Загрузить больше
С помощью надстройки Filters я смог настроить за 10 минут то, что я пытался сделать сам почти 8 часов. Хотя его функциональные возможности более специфичны, я бы поставил этот плагин рядом с ACF Pro с точки зрения профессионализма и поддержки. Я использую очень мало плагинов при сборке сайта, но я добавлю этот в список.