Como encomendar posts adjacentes (prev / next) por valor de campo personalizado?

Estou usando os plugins More Fields and More Types para criar um tipo de postagem personalizado chamado product . Este tipo personalizado é baseado no tipo de postagem .

Um dos campos é chamado de lot que é um número inteiro que representa um Lote # para um leilão.

Criei uma página de categoria personalizada que gera uma lista de links para cada lote, ordenado pelo campo de lot . Isso funciona muito bem.

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

No entanto … quando você clica em um dos lotes, os links de publicação Anterior e Próxima não são ordenados pelo campo de lot mais, eles são ordenados por data de publicação (que é o padrão do WP). Estou tentando descobrir como posso alterar essa ordem de sorting padrão para previous_post_link() e next_post_link() para usar o campo de campo personalizado em vez da data de publicação.

Solutions Collecting From Web of "Como encomendar posts adjacentes (prev / next) por valor de campo personalizado?"

Você pode filtrar o SQL para mudar sua condição em get_adjacent_post() ( source ):

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

Ou link de filtro completamente em adjacent_post_link() ( fonte ):

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

PS $adjacent pode ser o next ou previous .