Méthode de filtrage "orderby" (ASC et DESC) de WP_Query à l'aide de meta_query
P粉007288593
2023-09-01 16:20:27
<p>J'essaie de filtrer les publications par 'DESC' à l'aide des métadonnées personnalisées 'like_count_on_post', puis de collecter tous les 'like_count_on_post' et 'dislike_count_on_post' vides et enfin de les trier par 'ASC' de 'dislike_count_on_post' mais je ne peux obtenir que des likes. par ordre décroissant, ou si je supprime : </p>
<blockquote>
<p>'custom_field_value' => 'DESC'</p>
</blockquote>
<p>Je peux obtenir l'ordre croissant par étape, mais pas les deux en même temps. </p>
<p>Code du paramètre de requête : </p>
<pre class="brush:php;toolbar:false;">$args = array(
'post_status' => 'publier',
'post_type' => 'sveikinimai',
'meta_query' => tableau(
"relation" => "et",
'j'aime' => tableau (
"relation" => "ou",
'custom_field_value' =>
'clé' => '_like_count_on_post_',
),
'custom_field' => tableau(
'clé' => '_like_count_on_post_',
'comparer' => 'N'EXISTE PAS',
),
),
'n'aime pas' => tableau(
"relation" => "ou",
'custom_field_value_2' =>
'key' => '_dislike_count_on_post_',
),
'custom_field_2' =>
'key' => '_dislike_count_on_post_',
'comparer' => 'N'EXISTE PAS',
),
),
),
'orderby' => tableau (
'custom_field_value' => 'DESC',
'custom_field_value_2' => 'ASC'
),
'posts_per_page' =>
'paginé' => $paginé,
);</pré>
<p>Mise à jour, si vous souhaitez filtrer les champs de métadonnées inexistants, voici le code : </p>
<pre class="brush:php;toolbar:false;">$args = array(
'post_status' => 'publier',
'post_type' => 'sveikinimai',
'meta_query' => tableau (
"relation" => "et",
'custom_field_value' =>
'clé' => '_like_count_on_post_',
),
'custom_field_value_2' =>
'key' => '_dislike_count_on_post_',
),
),
'orderby' => tableau (
'custom_field_value' => 'DESC',
'custom_field_value_2' => 'ASC'
),
'posts_per_page' =>
'paginé' => $paginé,
);</pre></p>
Pour résoudre le problème, j'ai ajouté les champs méta 'like_count_on_post' et 'dislike_count_on_post' à toutes les publications. Le filtre fonctionne bien, je ne pense pas qu'il se résolve lorsque les champs sont vides, mais voici le code pour que ces champs ne soient pas vides :