Как использовать конкретный файл перевода в зависимости от языка при AJAX-загрузке постов?

Есть скрипт-обработчик запросов на подгрузку постов (запускается при клике по кнопке):
Открыть код
<?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-запрос с учетом текущего языка?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@weart
Потому что вы запилили AJAX не по официальному API. Иначе не было бы проблем с _, _e и тд.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы