2017-01-23 14 views
0

私は自分のカスタム投稿タイプの結果をリストする簡単なWordpressクエリを持っています。高度なカスタムフィールドメタキー順の値

現在、投稿は作成された日付順に並べられています。

私はそれらを必要としますカスタムフィールドの順序で私は 'release_year'から最近のものから最も古いものまで名前を挙げました。

結果に2番目のクエリを組み込む際に問題があります。

すべての投稿がrelease_yearでソートされるようにするにはどうすればよいですか?

ありがとうございました。

<?php 
    $posts = get_posts(array(
    'post_type'   => 'discography', 
    'posts_per_page'  => -1, 
    'meta_key'   => 'release_category', 
    'meta_value'   => 'album', 
    'orderby'    => 'meta_value', 
    'order'    => 'ASC', 
));    
if($posts): ?> 

答えて

3

あなたはので、それはあなたの代わりに他のキーを使用することを知る方法がないメタキーとしてrelease_categoryを指定しているがrelease_yearで注文する必要があります。

あなたが直面する主な問題は、2つのmeta_key引数を持つことができないことです。代わりにmeta_query引数を使用する必要があります。

$posts = get_posts(array(
    'post_type'   => 'discography', 
    'posts_per_page'  => -1, 
    'meta_key'   => 'release_year', 
    'orderby'    => 'meta_value_num', 
    'order'    => 'DESC', 
    'meta_query'   => array(
     array(
      'key' => 'release_category', 
      'value' => 'album', 
     ), 
    ), 
)); 

メタクエリがリリースカテゴリとあなたがで注文したいキーに変更meta_key値を設定するために使用されます。また、数値を扱う際に重要なものをmeta_value_numに設定しました。最後に、降順を使用する必要があります。

さらに読書:https://codex.wordpress.org/Class_Reference/WP_Meta_Query

https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

+0

本当にありがとうございましたネイサン - これは完全に働きました。説明も素晴らしかったです。 – lowercase