我需要做從郵政表中選擇,每個職位與一個類別和標籤。 我需要選擇特定的標籤和/或類別/ s。 術語表具有自定義字段「menu_order」,它用於設置類別順序。 我想根據該字段對帖子進行排序。 如果我這樣做平原選擇:WordPress的自定義查詢
SELECT * from wp_posts
LEFT
JOIN wp_term_relationships
ON (wp_term_relationships.object_id = wp_posts.ID)
LEFT
JOIN wp_terms
ON (wp_terms.term_id = wp_term_relationships.term_taxonomy_id)
WHERE 1=1
AND wp_posts.post_type = 'post'
AND (
wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private'
)
LIMIT 0, 20
我得到的結果:
+----------------+----------------+----------+---------------------+
| POST ID | Term name | order | type |
+----------------+----------------+----------+---------------------+
| 2 | Fire | 1 | category |
+----------------+----------------+----------+---------------------+
| 2 | blue | 0 | tag |
+----------------+----------------+----------+---------------------+
這僅僅是個前奏。
如果我做WHERE $ wpdb-> terms.term_id = 170什麼是TAG我只有一個回報。
+----------------+----------------+----------+---------------------+
| POST ID | Term name | order | type |
+----------------+----------------+----------+---------------------+
| 2 | blue | 0 | tag |
+----------------+----------------+----------+---------------------+
,我需要選擇的職位,按類別和/或標籤過濾掉,然後從連接到POST類別獲得TERM_ORDER。
因此,無論我有什麼結果,訂單總是從相關類別中提取。
因爲我在MYSQL中不是很強大,這讓我感到莫名其妙。任何輸入將有幫助:)
UPDATE ------------------------------------ --------------
所以,瘋狂的編碼後,我設法得到我想要的。 不要屏住呼吸,因爲這可能是醜陋和緩慢,但工程。
首先,我創建了收集所有產品的視圖。
$qqquery = "
CREATE VIEW samsam AS
SELECT
ID, post_content, post_title, post_excerpt, post_status, post_name, guid, post_type, $wpdb->term_relationships.term_taxonomy_id as cat_term_taxonomy_id, tt1.term_taxonomy_id as tag_term_taxonomy_id
FROM $wpdb->posts
LEFT
JOIN $wpdb->term_relationships
ON ($wpdb->term_relationships.object_id = $wpdb->posts.ID)
LEFT
JOIN $wpdb->term_relationships AS tt1
ON (tt1.object_id = $wpdb->posts.ID)
WHERE 1=1
AND $wpdb->posts.post_type = 'post'
AND (
$wpdb->posts.post_status = 'publish'
OR $wpdb->posts.post_status = 'private'
)
AND ( wp_term_relationships.term_taxonomy_id IN ($query_cat) // ID's of categories, seperated by coma
AND tt1.term_taxonomy_id IN (' . $add_query_tag_id . ') //ID's of POSTS seperated by coma
)
ORDER BY $wpdb->term_relationships.term_taxonomy_id DESC
";
$wpdb->query($qqquery);
後,我就查詢在那裏我選擇視圖和連接關係和條件過濾掉順序> 0,則組按ID過濾掉重複獲得類別順序。
$querystr = "
SELECT * from samsam
LEFT
JOIN $wpdb->term_relationships
ON (samsam.ID = $wpdb->term_relationships.object_id)
LEFT
JOIN $wpdb->terms
ON ($wpdb->terms.term_id = $wpdb->term_relationships.term_taxonomy_id)
AND ($wpdb->terms.menu_order > 0)
WHERE menu_order > 0
GROUP BY ID
ORDER BY menu_order ASC
LIMIT $item_limit_offset, $item_limit_pp"; // first is calculation of products to skip, second is how many posts per page
$pageposts = $wpdb->get_results($querystr, OBJECT);
作用:
類別1(有1階) 後 後 後
3類(有順序2) 後 後 後
範疇2(有訂單3) 後 後 後
可以被限制,脫銷,分頁,標籤和/或類別過濾。
我用插件「Term Menu Order」爲訂單類別添加了額外的字段。
祝您有愉快的一天。
感謝您提供的答覆,我設法實現我想要的東西,通過使用大量的不良編碼,感謝的,有一個愉快的一天,分辨率張貼在原崗位:) – LatvjuAvs 2011-12-15 14:09:47