Есть скрипт-обработчик запросов на подгрузку постов (запускается при клике по кнопке):
Открыть код<?php
ini_set("display_errors",1);
error_reporting(E_ALL);
// *
// Подключаем все файлы для работы
// *
require_once( $_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
check_ajax_referer('load_more_posts', 'security');
$paged = $_POST['page'];
$category = $_POST['category'];
$language = $_POST['language'];
WPGlobus::Config()->language = $language;
$args = array(
'cat' => $category,
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => get_option( 'posts_per_page'),
'paged' => $paged,
);
$my_posts = new WP_Query( $args );
if ( $my_posts->have_posts() ) :?>
<?php while ( $my_posts->have_posts() ) : $my_posts->the_post(); ?>
<?php get_template_part('template-parts/content','news-post') ?>
<?php endwhile; ?>
<?php endif; ?>
Ajax-запрос отсылается так:
Открыть код$('.inner-page__loadmore').click(function(e) {
var button = $(this);
var page = parseInt($(this).attr('data-page'));
console.log(page);
var data = {
'category' : $(this).attr('data-category'),
'page': page,
'security': $(this).attr('data-wp-nonce'),
'language': $(this).attr('data-lang')
}
e.preventDefault();
$.ajax({
type: "POST",
url: "/api/loadposts.php",
data: data,
success: function(response){
if (response) {
$('#inner-page-posts').append(response);
button.attr('data-page',page+1);
} else {
button.fadeOut();
}
},
error: function() {
$('.modal').modal('hide');
$('#errorModal').modal('show');
}
});
});
Суть проблемы: плагин для мультиязычности стоит WPGlobus, поэтому на сервере перед WP Loop, я устанавливаю язык (который передается от клиента)
WPGlobus::Config()->language = $language;
, тем самым берется пост с нужным языком, но сам перевод шаблона не подгружается, то есть такие конструкции
<?php _e('Читать полностью','theme') ?>
не работают. Как вообще правильно делать AJAX-запрос с учетом текущего языка?