Как заказать соседние сообщения (prev / next) с помощью настраиваемого значения поля?

Я использую плагины More Fields и More Types для создания пользовательского типа типа, называемого product . Этот настраиваемый тип основан на типе Post .

Одно из полей называется lot которое является целым числом, представляющим лот № для аукциона.

Я создал страницу пользовательской категории, которая генерирует список ссылок для каждой lot , упорядоченной по полю lot . Это отлично работает.

 $args = array( 'post_type' => array('product'), 'cat' => 3, 'meta_key' => 'lot', 'orderby' => 'meta_value_num', 'order' => 'ASC' ); 

Однако … когда вы нажимаете на один из лотов, ссылки «Предыдущее и последующее сообщение» больше не упорядочиваются по полю lot , они упорядочиваются по дате публикации (это WP по умолчанию). Я пытаюсь выяснить, как я могу изменить этот порядок сортировки по умолчанию для previous_post_link() и next_post_link() чтобы использовать пользовательскую поле в поле вместо публикации даты.

Solutions Collecting From Web of "Как заказать соседние сообщения (prev / next) с помощью настраиваемого значения поля?"

Вы можете отфильтровать SQL для изменения вашего условия в get_adjacent_post() ( source ):

 $sort = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1" ); 

Или вообще ссылку на фильтрацию в adjacent_post_link() ( источник ):

 echo apply_filters( "{$adjacent}_post_link", $format, $link ); 

next PS $adjacent может быть next или previous .