Как настроить Ajax-фильтр Catory, когда активен многоязыковой язык - PullRequest
0 голосов
/ 10 декабря 2018

В настоящее время я поддерживаю поддержку нескольких языков на моем сайте.Основной язык сайта - голландский, и я добавил английский.Все отлично работает, но фильтр категорий ajax в моем блоге - нет.

Голландская версия работает нормально, английская версия - нет.

Фильтр категорий, похоже, генерирует правильный URL-адрес в английской версии блога, но не отображает правильные сообщения: когда вы нажимаете на категорию в английской версии фильтра категорий, онвозвращает каждый нидерландский пост (который является основным языком).

То же самое происходит с нумерацией страниц ...

Я просто не могу понять, как это исправить.Это JS, который используется (нижняя часть - нумерация страниц, верхняя часть - фильтр категорий):

$(function() {

  // Filter projects and posts
  $(document).on("change", ".category-selection-field input[type=checkbox]", function(){
    var slugs = $('.category-selection-field input[type=checkbox]:checked')
                  .map(function(){return $(this).attr("data-slug")})
                  .get()
                  .join(",");
    var post_type = $(this).attr("data-post-type");
    var get_url = "/apis?categories="+slugs+"&post_type="+post_type;

    window.history.pushState(null, null, "?categories=" + slugs);
    $.ajax({url: get_url , success: function(result){
      $("#post-card-container").html(result).hide().fadeIn(500);
    }});
  });

  // Ajaxify the pagination
  $(document).on("click", ".paginate-navigation-js a", function(e){
    e.preventDefault();

    var stored_params = $(this).attr("href").split("?")[1];
    if(!stored_params.includes("post_type")){
      stored_params += "&post_type=" + $(".category-selection-field input[type=checkbox]").attr("data-post-type");
    }
    var get_url = "/apis?"+stored_params;

    if(get_url != ""){
      $.ajax({url: get_url , success: function(result){
        $("#post-card-container").html(result).hide().fadeIn(500);
        $('html,body').animate({
          scrollTop: $("#post-card-container").offset().top
        }, 500);
      }});
    }
  })

});

Есть ли способ исправить это?Я полагаю, что это проблема с URL из-за того, что / en / добавлено в URL на английской версии сайта?

Сайт построен с использованием HTML / жидкости.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

URL-адрес голландского блога (Это основной URL-адрес языка)

URL-адресАнглийский блог (Здесь дела идут не так, как надо)

Я очень надеюсь, что вы, ребята, поможете мне с этим, потому что я заблудился!:)

1 Ответ

0 голосов
/ 10 декабря 2018

Неважно, я смог исправить это самостоятельно, изменив тег HTML на:

<html lang={{request.language}}>

И изменив js на:

$(function() {

  // Filter projects and posts
  var lang = $("html").attr("lang");
  $(document).on("change", ".category-selection-field input[type=checkbox]", function(){
    var slugs = $('.category-selection-field input[type=checkbox]:checked')
                  .map(function(){return $(this).attr("data-slug")})
                  .get()
                  .join(",");
    var post_type = $(this).attr("data-post-type");
    var get_url = "/"+ lang +"/apis?categories="+slugs+"&post_type="+post_type;

    window.history.pushState(null, null, "?categories=" + slugs);
    $.ajax({url: get_url , success: function(result){
      $("#post-card-container").html(result).hide().fadeIn(500);
    }});
  });

  // Ajaxify the pagination
  $(document).on("click", ".paginate-navigation-js a", function(e){
    e.preventDefault();

    var stored_params = $(this).attr("href").split("?")[1];
    if(!stored_params.includes("post_type")){
      stored_params += "&post_type=" + $(".category-selection-field input[type=checkbox]").attr("data-post-type");
    }
    var get_url = "/"+ lang +"/apis?"+stored_params;

    if(get_url != ""){
      $.ajax({url: get_url , success: function(result){
        $("#post-card-container").html(result).hide().fadeIn(500);
        $('html,body').animate({
          scrollTop: $("#post-card-container").offset().top
        }, 500);
      }});
    }
  })

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...