• Помогите с запросом так как сам не силен в sql.
    Нужно именно чистый sql запрос к базе вп, без всяких вп функций именно запрос.
    Исходные данные:
    Есть несколько категорий (условно кат1, кат2, кат3, кат4) в которых находятся статьи причем некоторые из статей могут принадлежать категориям кат3, кат4 одновременно.
    Задача:
    Выбрать все посты которые не принадлежат категориям кат3, кат4.

    Прошу заранее форумных троллей не постить, а так же тем кто не может дать конкретный ответ.
    Буду очень благодарен всем кто может помочь.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • global $wpdb;
    $terms_id = '1,3,5,7';
    $data = $wpdb->get_results("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id NOT IN ($terms_id)");
    $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE ID IN ($data)");

    что-то вроде того, если есть желание, объедини запросы через JOIN

    а чем вам query_posts не устраивает там есть такой category__not_in— must use cat ids

    Чтобы сильно не парится с MySQl предпочитаю подсмотреть у WP:
    сначала конструируешь выборку с помощью query_posts,
    а чтобы увидеть Текст SQL подключаешь фильтр

    add_filter('posts_request', 'SQL_print');
    
    function SQL_print($sql){
         echo '<pre>';print_r($sql);echo '</pre>';
         return $sql;
    }

    Camarade — спасибо все работает. Взял только сам запрос )
    stur — дело в том что мне нужен был именно запрос так как скрипт у меня работает из под кронтаба консольно без классов вп.

    Спасибо всем кто откликнулся. тема более не актуальна.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «SQL query» закрыта для новых ответов.