Поддержка Проблемы и решения Сортировка по алфавиту

  • Решено EstebanDaSilva

    (@estebandasilva)


    Сортировка по алфавиту

    Сайт работает на трех языках, для этого использую плагин qTranslate.
    Работой плагина очень доволен, но есть одна серьезна проблема для меня.

    На главной странице вывожу заголовки статьей из определенной категории и сортирую их по алфавиту. Список нормально сортируется только если у меня выбран стандартный язык, при переходе на другую версия сайта, список формируется исходя из алфавита стандартного языка.

    Например, если я выбрал стандартный язык, у меня это английский, список выглядит так.

    Argentina
    Armenia
    Azerbaijan
    ….

    Когдя я перехожу на русскую версия сайта, выводит так

    Аргентина
    Армения
    Азербайджан

    хотя должно было выводить так

    Азербайджан
    Аргентина
    Армения

    Пожалуйста, помогите найти решения.
    Готов заплатить $20 за помощь.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yuri

    (@yube)

    Я могу только объяснить, почему так происходит. Простого и эффективного решения не вижу. Громоздкое и неэффективное решение могу подсказать, но только для случая, если выводятся сразу все заголовки из рубрики, без постраничной навигации. Хотя… я проверю…

    Модератор Yuri

    (@yube)

    Вроде как что-то получилось. Вы для получения массива постов в шаблоне главной вызываете query_posts(‘cat=xxx’)?

    Автор EstebanDaSilva

    (@estebandasilva)

    Да, использую следующий код query_posts(«paged=$page».’&cat=XX&order=ASC&showposts=XX

    Модератор Yuri

    (@yube)

    В общем суть такова. Перед query_posts добавить код

    function home_posts_fields_request($fields) {
      global $q_config;
      return $fields . ", substr(post_title
        FROM position( '<!--:" . $q_config['language'] . "-->'
        IN post_title ) +10 ) AS subtitle";
    }
    
    function home_posts_orderby_request($orderby) {
      return 'subtitle ASC';
    }
    
    add_filter('posts_fields_request','home_posts_fields_request');
    add_filter('posts_orderby_request','home_posts_orderby_request');

    Это всё писано наполовину вслепую, потому что под руками нет тестового с qTranslatом, а на «боевом» опыты ставить нехорошо 🙂 Я не уверен в $q_config[‘language’]. Но точно могу сказать, что выше приведенный код, будучи вставленным в home.php перед query_posts(‘cat=4’), не мешает работе моего тестового сайта :)))

    Модератор Yuri

    (@yube)

    Я пошел в офф-лайн. Удачи! Делайте бэкапы! 😉

    Модератор Yuri

    (@yube)

    …а в ответ — тишина…
    Теперь сиди и думай: то ли с копипастом проблемы, то ли жаба задавила…

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Сортировка по алфавиту» закрыта для новых ответов.