web-dev-qa-db-fra.com

Existe-t-il un moyen de répertorier les balises en fonction du champ post_meta

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.

2
Bilal Ünal
$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
        )

)
2
Faysal Mahamud

Vous pouvez ajouter une méta-requête qui filtre post-meta, puis placez la variable wordpress orderby à meta_key

0
Danny van Holten