Como encomendar por datediff no WP loop?

Eu tenho um tipo de postagem personalizado para events com um campo personalizado chamado event_start_date, e eu quero ordenar o loop de arquivo de acordo com o evento_start_date mais próximo. Em outras palavras, o evento com o evento_start_date mais próximo para hoje deve ser exibido primeiro.

A consulta SQL para isso seria ORDER BY DATEDIFF(event_start_date, NOW()) ASC . Mas eu realmente não sei como fazer isso funcionar no wordpress.

Eu sou um desenvolvedor de WP completamente novo, e já tentei brincar com os args para WP_Query. Só me permite encomendar por event_start_date, que classifica os events como primeira data, o que não é o primeiro da data mais próxima.

Então, é possível encomendar um campo personalizado de tipo DATA de acordo com a diferença de data / hora a partir de hoje? Se é como posso fazê-lo?

Solutions Collecting From Web of "Como encomendar por datediff no WP loop?"

Você pode lidar com isso por definir DATEDIFF() em SELECT Por exemplo:

 SELECT RECID, DATEDIFF(t1.qr_enddate, NOW()) AS diffORD FROM `mytablw` t1 ORDER BY diffORD ASC; 

Isso deve funcionar, mas no seu caso, eu recomendo que use o wordpress default Filter API posts orderby . Esse filtro é aplicado antes que uma instrução SQL pós-recuperação seja executada. Use-o para fazer modificações personalizadas no orderby.