Jak získat všechny posty, které nemají konkrétní custom field

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.

Čtěte  Změna počtu cross sell produktů v košíku WooCommerce

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Chcete mít přehled o dění ve světě WordPressu?

Přímo do vašeho emailu

Pravidelný přehled o novinkách, trendech a událostech, které se točí kolem WordPressu. Souhrn toho nejzajímavějšího od nás i ze zahraničí.