фильтрация запросов WordPress по настраиваемым полям, тегам и категориям - PullRequest
0 голосов
/ 19 декабря 2011

Я сделал этот запрос, чтобы выбрать посты из блога WordPress с фильтрацией по категориям, тегам и пользовательским полям.

SELECT wp_posts.* 
FROM wp_posts
WHERE   wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish'

AND     (       SELECT COUNT(*) 
                FROM wp_term_relationships
                LEFT JOIN wp_term_taxonomy ON ( wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id )
                LEFT JOIN wp_terms ON ( wp_term_taxonomy.term_id = wp_terms.term_id )
                WHERE wp_posts.ID = wp_term_relationships.object_id 
                AND     ( wp_terms.name = 'collaborazioni' && wp_term_taxonomy.taxonomy = 'category' ) 
                        ||
                        ( wp_terms.name = 'jammin' && wp_term_taxonomy.taxonomy = 'post_tag' )
            ) >= 1

AND     (       SELECT COUNT(*) FROM wp_postmeta
                WHERE wp_postmeta.post_id = wp_posts.ID 
                AND wp_postmeta.meta_key = 'Product-code'
                AND wp_postmeta.meta_value = 'xxxxxx'
                ) >= 1

но я думаю, что это немного тяжело ... у вас было какое-то лучшее решение?

спасибо, Пьетро.

1 Ответ

0 голосов
/ 20 декабря 2011

Что именно вы хотели бы сделать короче?Это уже выглядит очень хорошо.

PS.Возможно, вы захотите использовать {$wpdb->prefix} вместо wp_ в запросах.

...