Je travaille sur un plugin. J'ai placé un bouton sous chaque message pour que les utilisateurs puissent l'aimer. Lorsque l'utilisateur clique sur le bouton, il met à jour le champ post_meta 'likes_count' que j'ai créé. Maintenant, voici ma question. J'ai créé une page d'administration et je souhaite répertorier toutes les balises en fonction du champ 'likes_count' post_meta. C'est possible? Merci.
$querystr = "
SELECT DISTINCT
-- post_meta.meta_value,
key2.name as tag_name,key2.slug as tag_slug FROM $wpdb->posts key1
LEFT JOIN $wpdb->term_relationships ON (key1.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->postmeta post_meta ON (key1.ID = post_meta.post_id)
LEFT JOIN $wpdb->terms key2 ON ($wpdb->term_relationships.term_taxonomy_id = key2.term_id)
LEFT JOIN $wpdb->term_taxonomy key3 ON ($wpdb->term_relationships.term_taxonomy_id = key3.term_id)
WHERE 1=1
AND post_meta.meta_key = 'likes_count'
AND post_meta.meta_value > 0
AND (key1.post_status = 'publish')
AND key3.taxonomy = 'post_tag'
";
$pageposts = $wpdb->get_results($querystr, OBJECT);
print_r($pageposts);
C'est la requête exacte pour les tags. J'ai testé cela et a bien fonctionné. ci-dessous vous donne un exemple de sortie
Array
(
[0] => stdClass Object
(
[tag_name] => Tag1
[tag_slug] => tag1
)
[1] => stdClass Object
(
[tag_name] => Tag2
[tag_slug] => tag2
)
)
Vous pouvez ajouter une méta-requête qui filtre post-meta, puis placez la variable wordpress orderby à meta_key