WordPress использует menu_order столбец в таблице публикаций для управления порядком страниц и иерархическими типами записей. Если у вас возникла ситуация, когда вам нужно отобразить коллекцию сообщений в определенном порядке, используйте этот столбец базы данных. Затем, независимо от того, выбираете ли вы сообщения или создаете собственные запросы , все, что вам нужно сделать, это передать их в качестве параметра get_posts ()WP_Query ‘menu_order post_title' orderby. Часто следующим шагом является предоставление пользователям возможности легко изменять порядок отображения. Мне действительно нравится упрощать работу пользователей, поэтому я использую встроенное взаимодействие jQuery Sortable для перетаскивания. Независимо от того, как вы решите разрешить переупорядочение, вам придется обновить menu_order значение в базе данных для нескольких сообщений.
Поскольку я использую AJAX для передачи массива упорядоченных идентификаторов записей, производительность действительно важна. Итак, я решил найти способ переупорядочить коллекцию сообщений, используя один запрос MySQL, и вот что я придумал:
Чтобы использовать эту функцию, все, что вам нужно сделать, это передать упорядоченный массив числовых идентификаторов записей. Функция примет идентификаторы постов в порядке их появления в массиве и обновит menu_order значение в базе данных для каждого поста.
Статья была переведена для блога TechBlog.SDStudio.top
Источник: wpscholar.com