WP 2.3.3 (Lecactus ed.) на хостинге ht-systems
периодически происходит "рассинхронизация" между столбцами term_taxonomy_id и term_id – при создании новой категории. term_id для неё вдруг становится на единицу меньше чем term_taxonomy_id и все последующие тоже.
У меня здесь общий вопрос даже (на офсайте мало данных по теме) – эти столбцы должны быть одинаковы? я правильно понял? а коли так – зачем их два? 🙂
В общем помогите разобраться плиз. Спасибо.
Ну коли их два, то резонно предположить, что значения в них могут отличаться, не правда ли? Вообще-то, таксономия в WP – самая мутная вещь, видимо, из-за своей молодости.
PS Не сломалось – не чини. 😉
для меня это не просто абстракция. у меня из-за этого глюка перестала работать выборка случайного поста из определенной категории. пару часов угрохал пока разобрался в чем дело :/
вот и интересуюсь – может кто еще сталкивался с этим?
Видимо, Вы изначально ошиблись, предположив, что эти поля одинаковы всегда, и потеряли одну реляцию.
Должно быть что-то типа
SELECT $wpdb->posts.* FROM $wpdb->posts INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.taxonomy = ‘category’ AND $wpdb->term_taxonomy.term_id = ‘$cat’ AND post_type = ‘post’ AND post_status = ‘publish’
у меня вот какое:
честно-говоря, это первый SQL-запрос с которым я имел дело за последние пару-тройку лет 🙂 и если совсем уж честно – я просто содрал его с подобного из какого-то топика в этом форуме )) просто делал все на бессонном драйве – неохота было заморачиваться на разбор структуры базы и т.п. – скопировал – работает – гут ) а сейчас вот чего вышло…
Запросы лучше драть не из форума, а из самого движка. 🙂