freelite

Получение категорий для записи (проблемма с плагином)

Друзья, я тут скачал плагин который не работает (может он под старую версию), но который мне очень нужен. Я посмотрел код и увидел где проблемма. Я просто с WordPress сталкиваюсь впервые и не знаю структуру самой БД (как в ВП хранятся связи по категориям), и щас не очень много времени разбиратьс в ней, вот в чем проблемма:

Суть плагина в том что он выбирает записи, которые имеют ключ article=1, вот идет выборка:

    $posts_data = $wpdb->get_results("
        SELECT $wpdb->posts.*
        FROM $wpdb->posts
        LEFT JOIN $wpdb->postmeta
        ON $wpdb->posts.ID = $wpdb->postmeta.post_id
        WHERE $wpdb->posts.post_status = 'publish'
        AND $wpdb->posts.post_date_gmt < '$now'
        AND $wpdb->postmeta.meta_key = 'article' AND $wpdb->postmeta.meta_value = '1'
        GROUP BY $wpdb->posts.ID
        ORDER BY $wpdb->posts.post_date_gmt DESC
    ");

Тут все понятно и отрабатывает без проблемм, дальше идет получение категорий для выбранных записей:

    $cats = $wpdb->get_results("
        SELECT $wpdb->term_relationships.object_id, $wpdb->terms.term_id, $wpdb->terms.name, $wpdb->terms.slug
        FROM $wpdb->term_relationships
        LEFT JOIN $wpdb->terms
        ON $wpdb->term_relationships.term_taxonomy_id = $wpdb->terms.term_id
        LEFT JOIN $wpdb->term_taxonomy
        ON $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id
        WHERE $wpdb->term_relationships.object_id IN (".implode(',', $post_ids).")
        AND $wpdb->term_taxonomy.taxonomy = 'category'
        ORDER BY $wpdb->terms.slug, $wpdb->term_relationships.object_id DESC
    ");

А вот тут уже траблы категории возвращаются не ко всем записям, помогите исправить этот запрос пожалуйста

Anonymous
Отправить
Ответ на: