Jak získat všechny posty, které nemají konkrétní custom field - Affinite.io CZ

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.

Youtube video gallery
Youtube video gallery
16 Pro, 2015
WordPressáci na Vysočině - 29.1. ve Žďáru nad Sázavou
WordPressáci na Vysočině - 29.1. ve Žďáru nad Sázavou
04 Led, 2016

Looking for something?