Toto je opět jeden z těch snippetů, které si zapisuji, pro budoucí použití. Konkrétně se jedná o výpis všech produktů ve Woocommerce, které nemají náhledový obrázek.
Z nějakého důvodu jsem pomocí WP_Query, nedostal všechny produkty, argument posts_per_page nefungoval.
Takže, pokud chcete získat všechny produkty/posty, které nemají určitý custom field, tak toto funguje bezpečně:
$querystr = "
SELECT ID FROM $wpdb->posts
WHERE $wpdb->posts.ID NOT IN (
SELECT post_id FROM $wpdb->postmeta
WHERE ($wpdb->postmeta.post_id = $wpdb->posts.ID)
AND meta_key = '_thumbnail_id'
)
AND (post_status = 'publish')
AND post_type = 'product'
ORDER BY post_date DESC
";
$products = $wpdb->get_results( $querystr );
V případě, že potřebujete kontrolovat neexistenci jiného custom fieldu, zaměňte _thumbnail_id a případně změňte post_type.