2016-02-15 6 views
1

Я написал запрос wp для отображения типов пользовательских настроек (мотобайков) на основе 2 ключей. (бренд, который является переменным и типом) Запрос работает и перечисляет мои собственные настройки должным образом, но я хотел бы заказать их на основе 3 ключевых значений, которые являются цилиндром («ключ => цилиндр») Я не нашел способ для заказа по определенному настраиваемому значению поля, отсутствующему в запросе. Вот мой запрос до сих пор:Заказать запрос Wp на основе пользовательского значения поля

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

[...]

Спасибо за вашу помощь.

С уважением.

ответ

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); 
+0

Есть ли причина, почему кто-то downvote этот ответ? Мне любопытно, и я хочу узнать, ошибаюсь ли я! – aletede91

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 
     ) 
    ) 
); 
+0

Спасибо, он работает отлично, но мне пришлось изменить meta_value на meta_value_num, – Ddc