Méthode de filtrage "orderby" (ASC et DESC) de WP_Query à l'aide de meta_query
P粉007288593
P粉007288593 2023-09-01 16:20:27
0
1
613
<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>
P粉007288593
P粉007288593

répondre à tous(1)
P粉471207302

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 :

add_action('save_post', 'add_post_custom_meta'); 
function add_post_custom_meta() {
  global $post;
  $post_id  = $post->ID;

  update_post_meta($post_id, '_like_count_on_post_', 0);
  update_post_meta($post_id, '_dislike_count_on_post_', 0);
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal