私はプラグインに取り組んでいます。ユーザーが投稿を好きになるように、私は各投稿の下にボタンのように配置しました。ユーザーがボタンをクリックすると、私が作成した 'likes_count' post_metaフィールドを更新します。今ここに私の質問です。私は管理者ページを作成し、私は 'likes_count' post_metaフィールドですべてのタグの順序をリストしたいと思います。出来ますか?ありがとう。
$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);
これはタグに対する正確なクエリです。私はこれをテストし、うまくいきました。以下にサンプル出力を示します
Array
(
[0] => stdClass Object
(
[tag_name] => Tag1
[tag_slug] => tag1
)
[1] => stdClass Object
(
[tag_name] => Tag2
[tag_slug] => tag2
)
)
あなたは投稿メタでフィルタリングするメタクエリを追加してから、ワードプレスのorderby変数をmeta_keyに置くことができます。