Eu agrupuei meus resultados de pesquisa por tipo de publicação, mas como posso dar a cada um deles sua própria ordem?

Eu agrupei meus resultados de pesquisa por tipo de publicação (artistas, events, postagens) e coloquei cada um deles em um contêiner. O próximo passo é dar a cada um deles sua própria ordem dentro do recipiente:

  • Artistas – Do AZ
  • Eventos – Todos os events futuros primeiro
  • Posts – Data desc

Eu meio que sei como configurar as consultas para cada um, mas eu não sei como torná-lo funcional dentro do código que eu já tenho … Quem pode me ajudar?

Este é um trecho do meu searchresults.php:

post_type){ $typecount = $typecount + 1; if ($typecount > 1){ echo '
'; //close type container } // save the post type. $last_type = $post->post_type; //open type container switch ($post->post_type) { case 'cpt_artist': echo "

Artiesten

"; break; case 'cpt_event': echo "

Evenementen

"; break; case 'post': echo "

Blog Results

"; break; } } ?>

<a href="https://wordpress.stackexchange.com//questions/292238/i-did-group-my-search-results-by-post-type-but-how-can-i-give-each-of-them-its/">

<a href="https://wordpress.stackexchange.com//questions/292238/i-did-group-my-search-results-by-post-type-but-how-can-i-give-each-of-them-its/">
· , - · ,
  • <a href="https://wordpress.stackexchange.com//questions/292238/i-did-group-my-search-results-by-post-type-but-how-can-i-give-each-of-them-its/">
  • No results found.

    Este é um trecho das minhas funções.php:

     add_filter('posts_orderby', 'group_by_post_type', 10, 2); function group_by_post_type($orderby, $query) { global $wpdb; if ($query->is_search) { return $wpdb->posts . '.post_type ASC'; } // provide a default fallback return if the above condition is not true return $orderby; } 

    Solutions Collecting From Web of "Eu agrupuei meus resultados de pesquisa por tipo de publicação, mas como posso dar a cada um deles sua própria ordem?"

    Aqui está uma abordagem de alto nível sugerida para obter o efeito desejado.

    • Em vez de executar todas as suas operações em um grande loop while em seu searchresults.php, tente:

      1. estabelecendo três arrays correspondentes a cada tipo – você pode fazer isso em um loop while.
      2. em seguida, classifique cada matriz conforme necessário (consulte a documentação de matrizes de sorting do PHP para as várias maneiras de classificar uma multidimensional array)
      3. em seguida, apresente o header da seção e faça um loop para os teasers de posts para cada tipo.
    • Alternativamente, na instrução if da sua function group_by_post_type , você pode executar as etapas 1 e 2 acima e, em seguida, mesclar os arrays, retornando o resultado mesclado e mantendo seus resultados de pesquisa.php muito intactos como você postou.