根据自定义字段值排序Wp查询

时间:2016-02-15 16:32:25

标签: php wordpress custom-fields wp-query

我已经编写了一个wp查询来列出基于2个键的custompost类型(motobikes)。 (变量和类型的品牌) 查询工作并正确列出我的customposts,但我想根据一个3键值(即'key => cylindree')对它们进行排序 我找不到按查询中不存在的特定自定义字段值排序的方法。 这是我到目前为止的查询:

$args = array(
    'post_type' => 'motos',
    'posts_per_page'=> -1,
    'meta_query' => array(
        array( 
            'key' => 'categorie',
            'value' => 'Roadster'
        ),
        array( 
            'key' => 'marque',
            'value' => $meta_value 
        )
    )
);

[...]

感谢您的帮助。

最好的问候。

2 个答案:

答案 0 :(得分:2)

您可以按以下顺序添加meta_key

$args = array(
    'post_type' => 'motos',
    'posts_per_page'=> -1,
    'meta_key' => 'cylindree',
    'orderby' => 'meta_value',
    'meta_query' => array(
        array( 
            'key' => 'categorie',
            'value' => 'Roadster'
        ),
        array( 
            'key' => 'marque',
            'value' => $meta_value 
        )
    )
);

答案 1 :(得分:0)

试试这个,它对我有用:

global $wpdb;

$query = "
    SELECT  
        wp_posts.ID, pm1.meta_value AS your_custom_field
    FROM 
        wp_posts
    LEFT JOIN
        wp_postmeta AS pm1 ON (wp_posts.ID = pm1.post_id AND pm1.meta_key = 'name_of_custom_field_in_database')
    WHERE 
        wp_posts.post_type = 'your_post_type' AND 
        wp_posts.post_status = 'publish'
    ORDER BY your_custom_field
";

$posts = $wpdb->get_results($query);