php
  • mysql
  • sql
  • wordpress
  • 2015-08-25 2 views -3 likes 
    -3

    Я пытался получить сообщения от WordPress SQL, я хочу получить сообщения где post_type = «пост» и где post_type = «страница»Мульти выбрать из WordPress SQL

    Мой код:

    $wpdb->get_row(" SELECT * FROM $wpdb->posts WHERE post_type = 'post' and post_type = 'page' AND post_status = 'publish' ORDER BY RAND() "); 
    

    Этот код является правильным

    $wpdb->get_row(" SELECT * FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY RAND() "); 
    

    но только post_type = 'posts' я хочу оба! сообщение и страница.

    About Wordpress SQL

    Спасибо.

    +2

    Есть ли причина, по которой вы не используете стандартный WP_Query() '? – rnevius

    +0

    код верный, но я получил сообщение от post_type = 'post' я хочу получить от обоих – Sultan

    ответ

    2

    Вы можете использовать OR:

    $wpdb->get_row(" SELECT * FROM $wpdb->posts WHERE (post_type = 'post' OR post_type = 'page') AND post_status = 'publish' ORDER BY RAND() "); 
    

    ... но я до сих пор не понимаю, почему вы не делаете стандартный WP_Query().

    $args = array(
        'post_type' => array('post', 'page'), 
        'orderby' => 'rand', 
        'posts_per_page' => -1 
    ); 
    $query = new WP_Query($args); 
    
    +0

    Что вы имеете в виду WP_Query? – Sultan

    +0

    Да, потому что я делаю простой виджет. – Sultan

    +1

    @Sultan Это не повод не использовать WP_Query - WPDB следует использовать только для запросов к пользовательским таблицам. Для запросов к сообщениям уже есть встроенные функции, которые делают это довольно хорошо и возвращают вам объекты post. – vard

    Смежные вопросы