私の問題は多くのことをまとめたものであり、それが私がそれをうまく機能させることができない理由である可能性が最も高い.
私は長い SQL クエリに精通しておらず、Wordpress の大ファンでもありませんが、特定のページの順序を修正するように求められました。それを実現するには、カスタム属性で順序付けする必要があります。
私はこれを試しましたが、うまくいきませんでした:
$query = array(
'post_type' => 'custom_post_type',
'meta_key' => 'key_for_meta',
'orderby' => 'STR_TO_DATE(meta_value, "%d/%m/%Y")',
'order' => 'DESC',
'first_taxonomy' => $first_taxonomy,
'second_taxonomy' => $second_taxonomy
);
それは理想的な解決策であり、誰かがこれを機能させる方法を知っているなら、私は知りたい.
私はすでに のkey_for_meta
代わりに をmeta_value
試しorderby
、正しい table.column などを指そうとしました。
何度も試行した後、すべての希望を失い、クエリを作成しようとしています。次のようになります。
SELECT p.*,
m.meta_key, m.meta_value,
tt.taxonomy as s_tax,
t.slug
FROM wp_posts AS p
INNER JOIN wp_postmeta AS m ON p.ID = m.post_id AND m.meta_key = 'key_for_meta'
INNER JOIN wp_term_relationships AS tr ON p.ID=tr.object_id
**INNER JOIN wp_term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN wp_terms AS t ON tt.term_id = t.term_id**
WHERE 1 = 1
AND wp_posts.post_type = 'custom_post_type'
AND wp_posts.post_status = 'publish'
**AND t.slug = '$first_taxonomy'
AND t.slug = '$second_taxonomy'**
GROUP BY wp_posts.ID
ORDER BY STR_TO_DATE(m.meta_value, '%d/%m/%Y') ASC";
どんな解決策でも大歓迎です。問題がどのように解決されたかは気にしません。問題なく動作することを望んでいます。見栄えも良ければ完璧ですが、諦めました。
日付は DD/MM/YYYY の形式です。リクエストに応じて、wp_postmeta のいくつかの列:
meta_id post_id meta_key meta_value
5101 3521 data_prova 12/01/2013
5114 3526 data_prova 02/03/2013
5165 3554 data_prova 02/03/2013
また、作成したクエリで分類法を機能させることはまだできませんでした。
すばらしいニュース: ほとんどすべてが機能しました。唯一の問題は、両方の分類法で機能させることができないことですが、1つだけで試しても機能します。