以下PHP中的SQL查詢應該顯示基於標題和標記條目的結果。這些標籤位於表wp_terms中,wp_posts中的帖子位於該表中。在中間我們有wp_term_relationships來鏈接所有東西。mySQL搜索引擎仍然沒有爲多個表獲取關係
在wp_posts
我們想要的字段是post_id
在wp_term_relationships
領域object_id
應匹配的帖子ID和term_taxonomy_id
應匹配term_id
。 wp_terms
term_id
應匹配term_taxonomy_id
wp_terms_relationships
。然後,我們希望wp_terms
的字段name
用於搜索。
此刻此代碼不包括在搜索中的術語。
SELECT ID, post_name, post_title, post_date
FROM wp_posts
JOIN wp_term_relationships
ON object_id = wp_posts.id
LEFT JOIN wp_terms
ON term_id = wp_term_relationships.term_taxonomy_id
WHERE
wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish'
AND (wp_posts.post_title LIKE '%$my_text%' OR wp_terms.name LIKE '%$my_text%')"
我們如何得到這個工作。
UPDATE
什麼是應該發生的是搜索應該返回基於文章標題或標籤後的結果。問題是帖子標籤被視爲條款,並在另一個表格中提供幫助,這需要三分之一才能找到相應的ID。
我會盡量映射相關但是。
TABLE: wp_posts
==================================================================
post_id ==== post_title
==================================================================
TABLE wp_terms
==================================================================
term_id ==== name
==================================================================
TABLE wp_term_relationships
==================================================================
object_id ==== term_taxonomy_id
==================================================================
因此我們使用wp_term_relationships獲得其長期的ID(term_taxonomy_id
)反映該職位(object_id
);
希望幫助
表結構圖像
很難準確地理解需要發生什麼,而不看到喲你的數據庫模式。 – rdlowrey
@rdlowrey更多詳細信息添加 –
我編輯了我的帖子,我不確定您是否還希望爲檢索到的帖子獲取每個標籤的名稱?但你可以嘗試更新的版本。 – Cyclonecode