2015-03-31 3 views
2

Мне нужна помощь в разработке настройки wordpress. У меня есть следующий запрос MySQL с UNION инструкции:Mysql UNION on wordpress

SELECT 
    wp_posts.* 
FROM wp_posts 
    INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 
    LEFT JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) 
    LEFT JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id AND mt1.meta_key = 'dir_featured') 
WHERE 
    (wp_term_relationships.term_taxonomy_id IN (2151)) AND 
    wp_posts.post_type = 'ait-dir-item' AND 
    ((wp_posts.post_status = 'publish')) AND 
    ( 
     ( 
     wp_postmeta.meta_key = 'dir_featured' AND 
     CAST(wp_postmeta.meta_value AS CHAR) = 'yes' 
     ) 
    ) 
GROUP BY wp_posts.ID 
UNION 
SELECT 
    wp_posts.* 
FROM wp_posts 
    INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 
    LEFT JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) 
    LEFT JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id AND mt1.meta_key = 'dir_featured') 
WHERE 
    wp_term_relationships.term_taxonomy_id IN (2151) AND 
    wp_posts.post_type = 'ait-dir-item' AND 
    wp_posts.post_status = 'publish' AND 
    mt1.post_id IS NULL 
GROUP BY wp_posts.ID 

Я хочу перевести этот запрос с параметрами WordPress. Является ли это возможным?

+4

Что вы имеете в виду «перевести этот запрос с параметрами WordPress»? Не могли бы вы прояснить? – Epodax

+0

я намерен написать ее с параметрами WordPress в этом образце \t $ Params = массив ( \t \t 'post_type' \t \t \t => 'айт-Dir-элемент', \t \t 'nopaging' \t \t \t => \t правда, \t \t 'meta_query' => массив ( \t \t \t 'отношение' => 'OR', \t \t\t массив ( \t \t \t \t \t 'ключ' => 'dir_featured', \t \t \t \t \t 'значение' => 'да', \t \t \t \t \t 'сравнить' => '=' \t \t \t \t), \t \t \t \t массив ( \t \t \t \t \t 'ключ' => 'dir_featured', \t \t \t \t \t 'значение' => '', \t \t \t \t \t 'сравнить' => 'NOT EXISTS' \t \t \t \t) \t \t \t) \t, \t \t 'OrderBy' \t \t \t => обр ау ('dir_featured' => 'DESC', 'POST_DATE' => 'ASC'), \t \t 'post_status' \t \t => 'опубликовать', \t \t 'tag__in' \t \t \t => $ queried_object -> term_id \t); – PuroSangueZ

+0

Почему вы используете LEFT JOIN для wp_postmeta, когда вам нужна запись из wp_postmeta? Почему LEFT JOIN во втором экземпляре wp_meta в первом запросе, когда он никогда не используется? – symcbean

ответ

0

Что является целью этого запроса? Вот ваш запрос в режиме Wordpress

$args = array(
    'cat'   => 2151, 
    'post_type'  => 'ait-dir-item', 
    'post_status' => 'publish', 
    'meta_query'  => array(
       array(
        'key'  => 'dir_featured', 
        'value' => 'yes', 
        'compare' => '==', 
       ), 
      ), 

); 
query_posts($args); 
+0

Здравствуйте, спасибо за ответ, но ваши параметры соответствуют только первому запросу, но не учитывают «СОЮЗ» и следующий запрос. Мне нужно перевести этот запрос, чтобы отобразить некоторые элементы, «спонсированные», упорядоченные определенным образом. Результат запроса - это именно то, чего я хочу достичь. Я думаю, что мы в пути ... Еще раз спасибо за помощь – PuroSangueZ