Изменить сортировку товаров в админ панели


Содержание материала:

Сортировка товаров на фронтенде как в админке

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

Есть категории товаров с подкатегориями, вида:

Категория верхнего уровня 1

  • Категория второго уровня 2
    • Категория третьего уровня 3
  • Категория второго уровня 2
    • Категория третьего уровня 3
  • Категория второго уровня 2
    • Категория третьего уровня 3

На странице «Категория верхнего уровня 1» в админке выводятся все товары из внутренних подкатегорий, но сортировать их нельзя. И выводит их modx по непонятной логике.
Т.е. товары из подкатегорий идут не по порядку и перемешиваясь.

Можно ли как то организовать сортировку на этой странице, чтобы на фронтенде выводилось в том порядке, в котором задано в админке?

Сортировка записей в админ-панели WordPress

На днях столкнулся с необходимостью поменять стандартную сортировку записей в админ-панели WordPress. Код весьма прост, потому имеет право претендовать на универсальность. Хотя и может варьироваться в каждом конкретном случае.

Делюсь решением данной задачи, быть может кому-то тоже пригодится.

Данный фрагмент кода необходимо добавить в хорошо знакомый нам functions.php. В примере я выполнял сортировку по убыванию (DESC) по колонке «дата». Аналогичным способом можно выполнять сортировку по id , title и любому другому произвольному полю.

Для сортировки по мета-полям используйте:

Обращаю внимание! Приведенные выше примеры выполняют сортировку для всех записей и страниц вашего сайта.

Чтобы задать сортировку только для определенного типа записей, немного усовершенствуем наш код:

В примере выполнена сортировка по возрастанию по колонке «дата» для произвольного типа записей «articles».

Изменить сортировку товаров в админ панели

Сообщение da2lak » 30 май 2015, 00:00

Прошу прощения, что вмешиваюсь, но тоже интересует этот вопрос. И чтобы не плодить одинаковые темы решил написать тут.

У меня тоже сортируется по цене, начиная с меньшей, а мне надо как я хочу

в config.ini у меня так и написано FILTER_SORT = «price_course|asc». Но всё равно сортируется по цене.

Подскажите чайнику пожалуйста

Re: сортировка товаров

Сообщение Ivan » 01 июн 2015, 12:55

Re: сортировка товаров

Сообщение yandesi » 25 май 2020, 21:46

Re: сортировка товаров

Сообщение AndreySupport » 02 июн 2020, 19:31

Re: сортировка товаров

Сообщение Mark » 19 июн 2020, 16:16

Re: сортировка товаров

Сообщение da2lak » 24 ноя 2020, 22:25

А можно сделать сортировку так чтобы в самой категории товары сортировались «по порядку», т.е. как я выставлю в админке, а когда заходишь просто в каталог, где вообще все товары отображаются в куче, то там сортировались «по новизне»?

Как в WooCommerce изменить порядок товаров?

Здравствуйте!
Уже кучу сайтов перерыл и не нашел ничего дельного.
Появилась необходимость изменить порядок вывода товаров на сайте.
Сейчас все товары отображаются на сайте в зависимости от времени добавления.
Сверху — более свежие, и ниже — более старые.
Можно ли в админке, путём перетаскивания, менять порядок отображения товаров на сайте?
Наверняка есть какой-нибудь нехитрый плагин для этой цели. Но, я его не нашел.
Есть плагин «Post Types Order». Он в принципе со своей задачей справляется, но только режим перетаскивания работает, когда товары находятся в общей массе и к ним не применены фильтры.
Сейчас поясню.
Например у меня несколько категорий и в каждой категории по 50 товаров.
Через «Post Types Order» можно перетаскивать, когда все товары из всех категорий отображаются вместе.
Но, как только я применяю фильтр по категории ( чтобы было проще в товарах из одной категории ориентироваться ) перетаскивание пропадает.

Может быть есть другие плагины?

  • Вопрос задан 18 дек. 2020
  • 1611 просмотров

Можно ли в админке, путём перетаскивания, менять порядок отображения товаров на сайте?

Нажимаешь «Сортировать товары» и перетаскиваешь.

Как изменить сортировку товаров по умолчанию в Magento 2

В Magento 2 по умолчанию порядок сортировки товаров установлен по возрастанию, но что делать, если вам нужно изменить его по умолчанию в порядке убывания? На первый взгляд эта простая задача решается небольшой настройкой конфигурации в админпанели, но здесь не обойтись и без редактирования XML-файла макета.

В сегодняшней статье мы рассмотрим практическое решение задачи по изменению порядка сортировки по умолчанию в списке товаров.

Метод сортировки товаров в каталоге по умолчанию можно изменить в административной панели сайта в разделе Магазины > Конфигурация > Каталог > Витрина магазина > Сортировка списка товаров (Stores > Config > Catalog > Catalog > Storefront > Product Listing Sort By). Дефолтное значение – это Позиция (Position), которое основывается на числовом весе, установленного для каждого отдельного товара. Для сортировки товаров в каталоге по цене, самый дешевый товар будет выводиться в самом верху списка, что не всегда устраивает владельцев интернет-магазинов. В основном, владельцам нужно, чтобы вверху списка товаров показывались самые дорогие товары.

Как изменить сортировку товаров по умолчанию в Magento 2

Мы рассмотрим все составляющие этого процесса. Хотя это может показаться немного скучным, на практике данный материал может вам пригодиться, и вы лучше будете понимать всю систему.

Если вы новичок в Magento 2, стоит потратить некоторое время на изучение базовых принципов работы модулей и получить основное представление о структуре системы. Magento 2 – это огромная и сложная система, для изучения и понимания которой требуется время. Надеемся, что наши уроки по Magento 2 помогут вам при первых шагах в изучении данной системы.

Блок с выпадающим меню сортировки товаров рендерится на странице каталога с помощью .phtml шаблона. Его файл находится здесь: vendor/magento/module-catalog/view/frontend/templates/product/list/toolbar.phtml . Внутри этого файла вы увидите вызов файла шаблона для сортировщика:

Если этот код выглядит для вас новым, функция getTemplateFile() – это просто вспомогательная функция, которая вызывает указанный вами шаблон (кстати, это можно сделать и с помощью xml файла макета). Magento 2 использует сокращенную запись для этого файла, в итоге полный вызов шаблона осуществляется для этого файла: vendor/magento/module-catalog/view/frontend/templates/product/list/toolbar/sorter.phtml . В этом файле осуществляется проверка значения сортировки товаров по умолчанию:

Этот метод определяется в следующем классе ( @var $block \Magento\Catalog\Block\Product\ProductList\Toolbar ). Открыв файл класса по адресу vendor/magento/module-catalog/Block/Product/ProductList/Toolbar.php , мы видим следующее:

Этот код геттера сначала проверяет _getData() , чтобы найти установленное направление сортировки. Если оно не указано, тогда вызывается метод getDirection() в _toolbarModel() . Исследуя метод getDirection() , мы обнаруживаем, что он проверяет набор констант в Модели vendor/magento/module-catalog/Model/Product/ProductList/Toolbar.php . Если направление не указано там, оно проверяет константу, установленную в Хелпере ( vendor/magento/module-catalog/Helper/Product/ProductList.php ) через $this->_direction .


Учитывая эту структуру, мы ищем метод установки (сеттер) порядка сортировки по умолчанию. При таком поиске, может быть полезно узнать все доступные методы Блока, например, так:

Поместите этот код в нужном шаблоне (в нашем случае это vendor/magento/module-catalog/view/frontend/templates/product/list/toolbar.phtml ), обновите страницу каталога товара, и вы увидите большой список доступных для вызова методов Блока в данном шаблоне.

Топ-пост этого месяца:  Профессия SEO-специалист перспективы, плюсы и минусы

В итоге мы находим сеттер в следующем классе:

Этот метод выглядит многообещающе, но его нельзя настроить напрямую для объекта $block . Вместо этого мы будем использовать XML-файл конфигурации для вызова Блок класса и передачи значения там.

Для этого создайте в вашей теме следующий файл

В этот файл скопируйте приведенный ниже код. Если в вашей теме уже есть этот файл, возможно, там уже указаны основные ноды. В этом случае вам просто нужно добавить блок referenceBlock .

Давайте разберем этот код. Мы ссылаемся на основной контейнер содержимого страницы catalog_category_view . Внутри этого нода у нас есть вызов класса Блока, что имеет метод, который мы хотим установить, и мы вызываем этот метод с помощью нода .

Если поначалу этот синтаксис выглядит немного запутанным, позднее вы к нему привыкнете. Данный нод является базовым эквивалентом вызова $block->setDefaultDirection() . В котором мы должны передать нужное значение.

Если мы вернемся назад, для метода setDefaultDirection($dir) значение должно быть передано в виде строки. XML-версия этого аргумента – desc . Нод определяет все, что нужно знать Magento: имя, которое мы ему даем (произвольное, но с учетом простого соглашения об именах), тип данных значения (в нашем случае, строка) и само значение.

Если вы сохраните файл и обновите страницу каталога, вы увидите стрелку сортировки, которая по умолчанию установлена по убыванию (т.е, товары будут сортироваться от большего к меньшему). Если вы не видите изменений, обязательно очистите кэш.

Краткий итог

Надеемся, что сегодняшний урок дал вам шанс по-новому оценить мощь системы конфигурации с помощью XML, которой обладает Magento 2. Как разработчику, она даст вам возможность вносить значительные изменения в структуру сайта с помощью всего лишь нескольких строк кода, а эти знания помогут вам быстро найти решение для ваших практических задач!

Изменить сортировку товаров в админ панели

Сообщение da2lak » 30 май 2015, 00:00

Прошу прощения, что вмешиваюсь, но тоже интересует этот вопрос. И чтобы не плодить одинаковые темы решил написать тут.

У меня тоже сортируется по цене, начиная с меньшей, а мне надо как я хочу

в config.ini у меня так и написано FILTER_SORT = «price_course|asc». Но всё равно сортируется по цене.

Подскажите чайнику пожалуйста

Re: сортировка товаров

Сообщение Ivan » 01 июн 2015, 12:55

Re: сортировка товаров

Сообщение yandesi » 25 май 2020, 21:46

Re: сортировка товаров

Сообщение AndreySupport » 02 июн 2020, 19:31

Re: сортировка товаров

Сообщение Mark » 19 июн 2020, 16:16

Re: сортировка товаров

Сообщение da2lak » 24 ноя 2020, 22:25

А можно сделать сортировку так чтобы в самой категории товары сортировались «по порядку», т.е. как я выставлю в админке, а когда заходишь просто в каталог, где вообще все товары отображаются в куче, то там сортировались «по новизне»?

Сортировка товаров в заказе, в админ-панели

Здравствуйте.
Скажите, можно ли отсортировать товары, но не на сайте, а в админ-панели, в заказе?
Нужна сортировка по производителю.
Конечная задача — это сортировка в товарном чеке. Нужно, чтобы с распечатанного товарного чека было удобно списывать данные для бухгалтерии.

Как я понимаю надо использовать события в init.php.

30.08.2020, 00:02

Как настроить уведомление о заказе по разным группам товаров для разных email?
Есть 1 магазин в котором есть куча разных групп товаров. За каждую группу отвечают разные.

Не меняется «Тип цен» в админ-панели Битрикс
Всем добрый день. Прошу помочь в проблеме — всю голову уже сломал. Проблема в следующем: Имеется.

Несколько товаров и их кол-во в 1 заказе
Доброе утро. Загвоздка стала у меня, не пойму как поделить таблицу так что бы в таблице заказов по.

Клиент в одном заказе может выбрать несколько товаров
Как реализовать в access? клиент в одном заказе может выбрать несколько товаров

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

Как изменить сортировку в списке записей на сайте WordPress?

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

Как изменить сортировку записей WordPress?

Стандартных инструментов, позволяющих решить эту задачу, в WordPress нет. Поэтому воспользуемся сторонним решением – бесплатным плагином Post Types Order , который позволяет достаточно гибко изменить порядок вывода постов на сайте WordPress. Первым делом его необходимо установить и активировать. Сразу после активации плагин предлагает выполнить первоначальную его настройку, выводя соответствующее уведомление в админ-части сайта.

После перехода по ссылке открывается страница его настроек.

На странице настроек плагина доступны несколько опций, позволяющих гибко настроить его работу. Так, в блоке Показать / Спрятать интерфейс доступна сортировка для Записей и Медиафайлов. Вы можете включить или отключить возможность изменить порядок сортировки для этих двух типов записей.

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

Автосортировка позволит автоматически выполнять правильную сортировку. Вы сразу увидите изменения на страницах сайта. Например, на главной странице, где перечисляются анонсы записей, они будут расположены теперь в указанном вами порядке. Виджет со свежими записями в сайдбаре покажет их согласно результату сортировки. Изменение порядка записей также произойдет в меню Все записи в админке. Если Вы в шаблоне темы использовали свои запросы, изменяя порядок вывода записей, необходимо будет деактивировать опцию и задать параметр ‘orderby’ => ‘menu_order’ в параметры запроса. В этом случае плагин рекомендует более детально ознакомится с этим вопросом, предлагая страницу документации.

Отметив опцию Администраторская сортировка, Вы повлияете на интерфейс администратора и увидите типичные записи с учетом вашей новой сортировки.

Параметр Используйте параметр запроса ASC / DESC позволит автоматически выводить записи, отсортированные по алфавиту.

Настройка Перетаскивание архивов активирует режим сортировки методом Drag&Drop при помощи перетаскивания объектов мышью.

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

Для сохранения всех изменений необходимо нажать кнопку Сохранить изменения.

Теперь собственно сама сортировка записей. Для этого в админ-панели следует перейти Записи -> Изменить порядок.

Если на странице настроек была отмечена опция Перетаскивание архивов, то Вы сможете изменять порядок следования записей, перетягивая ту или иную в нужное место. Для сохранения изменений следует нажать кнопку Обновить.

Изменить сортировку товаров в админ панели

Здравствуйте. Подскажите пожалуйста есть ли возможность в платном пакете размещать товары в категориях в нужном мне произвольном порядке. Не только сортировкой по цене, а именно в том порядке в каком я хочу

Mariya Vechkanova

Эта возможность есть на всех планах Мерчиума. Пожалуйста, обратитесь к статье Сортировка товаров по позиции.


odo.zakam

в моей админке в списке товаров нет столбца Позиции

как менять порядок отображения?

Mariya Vechkanova

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

odo.zakam

да, теперь понял, спасибо.

а почему нельзя сделать позиции в Товары > Товары ?

мне кажется так удобнее.

хотя конечно и так тоже вполне логично.

Mariya Vechkanova

Позиции для товаров указываются в пределах определенной категории, в то время как на странице Товары > Товары отображаются все товары магазина, поэтому данное поле на ней не отображается.

Топ-пост этого месяца:  Динамические объявления в Яндекс.Директ настройка и виды

odo.zakam

да, действительно все логично. я понял, спасибо!

Mariya Vechkanova

Рады вам помочь!

nnagim

не могу разобраться с позициями товаров.

установил возрастающие номера внутри позиций ИК-обогреватели 500 Вт и ИК-обогреватели 750 Вт.

однако порядок товаров внутри позиций показывет наоборот.

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

Mariya Vechkanova

Как мы видим, в магазине, который зарегистрирован на ваш адрес электронной почты, отсутствуют указанные категории. Пожалуйста, разместите свой запрос с использованием учетной записи магазина, в котором существует проблема.

odo.zakam

пардон, не под тем пользователем залогинился.

не могу разобраться с позициями товаров.

установил возрастающие номера внутри позиций ИК-обогреватели 500 Вт и ИК-обогреватели 750 Вт.

однако порядок товаров внутри позиций показывет наоборот.

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

Arina Kireeva

Мы проверили настройки вашего магазина. Проблема заключалась в том, что сортировка по позиции была отключена на странице Настройки > Внешний вид в панели администратора. Мы включили варианты Сортировать по позиции: низкие позиции выше и Сортировать по позиции: высокие позиции выше для настройки Доступные способы сортировки списка товаров на этой странице и выбрали вариант Сортировать по позиции: низкие позиции выше для настройки Сортировка списка товаров по умолчанию на этой же странице. Сейчас товары сортируются согласно их позициям в категории.

odo.zakam

спасибо конечно. но это не совсем то, что хотелось бы получить.

зачем выносить фильтр «Позиции» посетителю сайта? он не знает и не должен знать, что такое позиция. пусть фильтрует по ценам, популярности и тд.

мне бы хотелось расположить товары в каталоге по-своему, так сказать «по умолчанию».

есть ли возможность спрятать этот фильтр от посетителя?

Arina Kireeva

В Мерчиуме сортировку по умолчанию можно выбрать только из включенных видов сортировки. Мы можем вам посоветовать изменить фразу Сортировать по позиции: низкие позиции выше на необходимую вам, например, на фразу По умолчанию. В этом случае будет происходить сортировка по позициям, но покупателю будет отображаться фраза По умолчанию в возможных видах сортировки.

Изменить фразу можно на странице Администрирование > Языки > Переводы. В правой колонке указанной страницы есть форма поиска (Ключевые слова), с помощью которой можно находить нужные языковые переменные как по их названию, так и по их содержимому.

Также вы можете редактировать содержимое прямо на витрине магазина. Для этого откройте страницу Дизайн > Темы и нажмите кнопку Редактировать содержимое.

Настройка столбцов в панели администрирования WordPress

Сайт на WordPress состоит из гораздо большего количества компонентов, чем только заголовки и фрагменты текста. Такие плагины, как Advanced Custom Fields и WooCommerce , внедряют пользовательские поля, в которых хранятся определенные фрагменты контента: цены, дополнительные изображения, подзаголовки и т. д. Эти функции сами по себе замечательны, но как отслеживаете весь этот контент, когда в панели администрирования можно видеть только заголовок, дату и автора?

В этой статье мы приведем простой пользовательский код для решения этой проблемы. А для тех, кто не хочет иметь дело с кодом, мы покажем, как настроить плагин Admin Columns , который выполнит всю работу за вас.

Мотивационный пример использования

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

В панели администрирования вы управляете портфолио, добавляете, удаляете и редактируете существующие объекты. По умолчанию столбцы WordPress (название, автор, дата публикации, количество комментариев) вряд ли соответствуют направлению сайта, и вас больше интересует просмотр изображений и информации об объектах в целом.

Давайте посмотрим на стандартную панель администрирования для пользовательских типов записей:

Мы разработаем другой формат отображения объектов недвижимости в панели администрирования, который будет выглядеть следующим образом:

Теперь гораздо проще найти, просмотреть и отредактировать содержимое.

Управление столбцами с помощью кода

Сначала мы рассмотрим управление столбцами панели администрирования: добавление столбцов, специфичных для вашего контента, удаление устаревших столбцов и изменение их порядка. Для этой цели WordPress предлагает API столбцов. Он также доступен для пользователей и таксономий, но мы рассмотрим раздел записей.

Изменение существующих столбцов можно выполнить с помощью двух хуков WordPress : manage_[post_type]_posts_columns , который позволяет удалять, изменять порядок и добавлять столбцы, и manage_[post_type]_posts_custom_colum . Вместо [post_type] введите тип записей, для которого необходимо настроить управление. Например, для страниц нужно использовать manage_page_posts_columns и manage_page_posts_custom_column .

«Где я могу разместить свой код?»

Чтобы добавить описанные ниже пользовательские функции, нужно место для запуска созданного кода. Это лучше всего сделать в плагине. В этом руководстве мы создадим настраиваемый плагин для запуска кода.

Все фрагменты кода, которые мы предоставим в рамках этой статьи, войдут в пользовательский плагин.

Добавление, удаление и реорганизация столбцов

Первый хук для управления столбцами ( manage_posts_columns ) — это фильтр, который обрабатывает массив столбцов. Стандартный массив фильтров для обзора записей:


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

Обратите внимание, что мы используем хук hook_realestate_posts_columns . Realestate здесь — это имя типа записей, переданное в качестве первого аргумента функции register_post_type . Она служит для регистрации пользовательских типов записей. Мы используем его вместо [post_type] в фильтре manage_[post_type_posts_columns .

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

Примечание. smashing_ в начале имен функций — это всего лишь рекомендованная практика, позволяющая обеспечить уникальность имени функции в WordPress . Функция __ используется для перевода строк на предпочтительный для пользователя язык. Обратите внимание, что для « Price » и « Area » мы используем smashing в качестве домена, который WordPress использует, чтобы определить, какой источник следует применять для перевода строки. Мы можем опустить это для перевода « Image », потому что WordPress включает в себя переводы этого слова. Больше о текстовых доменах вы можете узнать в кодексе WordPress .

Мы добавили столбцы для отображения изображения, цены и площади, а также возвращаемый массив с новыми столбцами. Полученный в результате список объектов выглядит следующим образом:

Кроме этого нам нужно:

  • Удалить столбцы « Author ,» « Date » и « Comments «, которые не имеют отношения к нашему контенту.
  • Изменить порядок столбцов так, чтобы столбец « Image » был первым.

Изменим нашу функцию, чтобы сделать это. Обратите внимание, что мы не удаляем три столбца, упомянутые выше, а формируем новый массив столбцов.

Наша новая панель обзора объектов недвижимости начинает формироваться: ненужные столбцы были удалены, а новые добавлены на необходимые позиции.

Заполнение столбцов

Затем мы заполняем столбцы. WordPress предоставляет для этого простой хук: action_[post_type]_posts_column . В отличие от ранее рассмотренного хука, это не фильтр, поэтому он позволяет добавлять контент, а не изменять его. Исходя из этого, в обратном вызове для данного действия просто отобразим содержимое столбца.

Начнем с добавления столбца « Image «.

Мы добавили функцию обратного вызова smashing_realestate_column в действие ‘manage_realestate_posts_custom_column’ , используя два параметра: имя столбца и идентификатор записи. Это определяется четвертым параметром add_action : он указывает количество аргументов, ожидаемых функцией обратного вызова. Третий параметр, называемый приоритетом хука, определяет, в каком порядке должны выполняться функции обратного вызова, зарегистрированные в хуке. Оставим для него значение по умолчанию, которое равно 10. Эта функция обратного вызова заполняет столбец «Image» для одной записи.

Топ-пост этого месяца:  Как вывести комментарии под каждым постом на главной

Остальные два столбца “Price” и “Area” хранятся в виде пользовательских полей с ключами price_per_month и area . Мы будем выводить их так же, как делали с изображением, указывая «n / a» , когда цена или площадь недоступны. Для обоих столбцов реализация схожа. Начинаем со столбца цены.

Следующий столбец площади. За исключением единиц измерения (квадратные метры, вместо долларов), код почти идентичен:

На странице обзора объектов недвижимости теперь содержится вся необходимая информация, которую нужно отобразить:

Теперь добавим функции сортировки столбцов.

Сортировка столбцов

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

Начнем с добавления столбца «price» в список сортируемых столбцов:

Этот код подключается к фильтру manage_edit-realestate_sortable_columns и добавляет smashing_realestate_sortable_columns в качестве функции обратного вызова (строка 1).

Столбец «price» становится сортируемым путем добавления в список сортируемых столбцов (строка 3). Обратите внимание, что ключ массива price — это имя, которое мы ранее задали для столбца. Значение массива используется, чтобы сообщить WordPress , что он должен сортировать. Например, можно использовать встроенные алгоритмы WordPress для сортировки по заголовку, дате или количеству комментариев.

Но нам нужно отсортировать столбцы по пользовательскому полю. Для этого требуется создать другую функцию, которая должна изменить запрос записей, если мы пытаемся сортировать их по цене. Мы будем использовать действие pre_get_posts . Оно позволяет изменять WP_Query (объект, который WordPress использует для запроса записей), и срабатывает перед запросом записей. Сначала проверяем, нужно ли сортировать записи по цене. Если да, изменяем запрос соответствующим образом:

Строки 1 и 2 добавляют функцию обратного вызова к действию и запускают определение функции обратного вызова. Строка 3 проверяет, находимся ли мы в панели администрирования, и является ли запрос основным запросом записей (дополнительную информацию можно найти в Кодексе ). Если нет, не будем изменять запрос.

Затем проверяем, является ли текущая стратегия сортировки сортировкой по цене. Если это так, корректируем запрос: устанавливаем для meta_key значение price_per_month , указывая WordPress получить это пользовательское поле для всех объектов недвижимости. Устанавливаем для ключа orderby значение meta_value , что указывает WordPress сортировать строки по значению, принадлежащему указанному ключу. Наконец, мы указываем WordPress сортировать записи по числам, а не в алфавитном порядке, потому что «цена» — это числовой столбец.

В результате мы получаем сортируемый столбец цены:

Та же процедура может быть повторена для столбца «area» . Для текстовых столбцов, которые необходимо сортировать в алфавитном порядке, не забудьте указать часть $query->set( ‘meta_type’, ‘numeric’ ) .

Управление столбцами с помощью плагина Admin Columns

Теперь, пришло время перейти к гораздо более простому способу реализации: с помощью плагина Admin Columns . Не имея дела с кодом и используя простой drag-and-drop интерфейс, вы сможете управлять столбцами всего в несколько кликов.

Плагин поддерживает более 150 типов столбцов. Он поставляется с полями, в которых можно настроить название и поведение столбца. В этой части статьи мы покажем, как настроить столбцы панели администрирования, чтобы создать тот же раздел, который разработали ранее.

Установите и активируйте плагин. Затем перейдите на страницу «Настройки столбцов».

Плагин Admin Columns позволяет управлять столбцами в разделах различных типов контента. Мы выберем тип записей «Real Estate» . Вы увидите, что на экране сразу отображаются столбцы, которые в данный момент активны для этого типа записей.

Добавление, удаление и реорганизация столбцов

Почистим раздел, удалив столбцы, которые не нужны:

Теперь добавим необходимый нам столбец, который показывает изображение объекта. Для этого нажмите кнопку «Add Column» , выберите из раскрывающегося списка тип столбца «Featured Image» и заполните соответствующие поля:

Admin Columns предоставляет параметры для настройки отображения столбцов. Здесь же предлагается указать размеры изображения. Позже мы увидим, что при выборе другого типа столбца плагин отображает другие связанные параметры. Для этих параметров Admin Columns пытается предоставить разумные значения по умолчанию.

Admin Columns позволяют сортировать столбцы, просто перетаскивая их. Теперь панель обзора объектов недвижимости выглядит следующим образом:

Теперь нужно добавить два столбца для отображения площади и арендной платы. Поскольку мы добавили эти пользовательские поля с помощью Advanced Custom Fields , то будем использовать плагин Admin Columns для интеграции ACF . Но для этой цели было бы достаточно и столбца “Custom Field” .

В приведенной ниже анимации показан процесс добавления столбцов «Area» и «Price» :

Примечание. Admin Columns предлагает модули для интеграции с другими плагинами, включая WooCommerce , Ninja Forms и Yoast SEO .

Мы еще не добавили столбец «City» . Выбираем столбец «Taxonomy» , задаем таксономию «City» . Все готово.

Сортировка и фильтрация с помощью плагина Admin Columns

Большая часть функционала, о котором мы рассказали до сих пор, включено в бесплатную версию плагина Admin Columns . Ее можно загрузить с WordPress.org .

Существует плагин Admin Columns Pro , который предлагает дополнительные функции: сортировка, фильтрация и редактирование. Эти функции помогут быстро найти и обновить контент прямо в панели обзора.

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

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

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

Рассмотрим простой пример: нужно найти дома с самой большой площадью. Это займет всего несколько секунд, потому что мы можем отсортировать объекты недвижимости по столбцу «Area» :

Пойдем еще дальше и добавим фильтр: найдем 10 домов с наибольшей площадью и с арендной платой в диапазоне от 300 до 500 долларов.

Редактирование с помощью Admin Columns

В панели обзора объектов недвижимости теперь отображается вся необходимая информация. Но чего-то не хватает: для редактирования контента нужно перейти на страницу редактирования, найти поля отредактировать их, нажать «Обновить».

Что, если бы мы могли выполнить эти же действия в три простых шага: кликнуть, отредактировать, сохранить? С помощью плагина Admin Columns Pro это возможно.

На скриншоте, приведенном выше, показан режим прямого редактирования названия свойства. Он доступен для всех пользовательских столбцов. С помощью плагина Admin Columns Pro активировать редактирование можно прямо в панели настройки столбцов. Он автоматически определяет тип контента и изменяет его соответствующим образом. Например, для изображений появится медиа-галерея.

В этом примере мы использовали расширение Advanced Custom Fields для Admin Columns . Оно обнаруживает поля ACF и добавляет их как столбцы. Они автоматически сортируются, фильтруются и редактируются.

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

Изменения сохраняются мгновенно. Если что-то пойдет не так, для быстрого отката есть кнопка отмены.

Заключение

Плагин Admin Columns может еще много чего крутого, но в этой статье недостаточно места. Почему бы вам самим не попробовать некоторые из удивительных возможностей этого плагина?

Данная публикация представляет собой перевод статьи « Customizing Admin Columns In WordPress » , подготовленной дружной командой проекта Интернет-технологии.ру

Добавить комментарий