Редакция хранится в wp_posts
в столбце post_type, поэтому вам нужно будет выполнить внутреннее объединение на wp_posts и запросить post_type NOT IN ('revision')
:
"SELECT DISTINCT post_id from {$wpdb->postmeta} INNER JOIN {$wpdb->posts} ON ID = post_id WHERE post_type NOT IN ('revision') ..."
Кстати, вставка необработанных SQL-запросов в get_col - плохая практика, так как она делает вас уязвимыми для SQL-инъекций. Используйте $wpdb->prepare()
как показано здесь:
http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks
Обратите внимание, что вам нужно будет экранировать %
, используемый в операторах LIKE, изменив их на %%
для работы в prepare()
.
Кроме того, вы не должны жестко кодировать имена таблиц WP в своих запросах. Класс wpdb хранит имена таблиц для использования при построении ваших запросов, т.е. $wpdb->posts
, $wpdb->postmeta
. Использование этих данных гарантирует, что ваш плагин всегда будет запрашивать правильные таблицы WP. Попробуйте свой код в многосайтовой установке, чтобы узнать, почему это важно.