最近新學做wordpress的主題,由于自己對wp自帶的函數不是很熟悉,用起來比較不方便,不如自己寫sql查詢來的快,于是便小小研究一下wp的數據庫.
我用的是wp3.5版本
假如我想輸出某一分類($category_id)下除了標題為“圖片”的文章,原本想用wp自帶函數query_posts實現,在網上看到一種用法是不想輸出某篇文章的話,就用query_posts('p=-1,-2'),于是自己查詢出所有標題為“圖片”的文章的id號,將這些id號用“-”和“,”連接成字符串$str然后處理一下(去掉多余的逗號之類),query_posts('cat='.$category_id.'&p='.$str),可惜,測試結果是失敗的,不知道是我的wp版本問題還是其他原因.
最終,還是自己寫sql語句,一步到位:
- select * from wp_posts,wp _term_relationships,wp_term_taxonomy where ID=object_id and wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id and wp_term_taxonomy.term_id=".$category_id." and post_type='post' and post_status ='publish' and post_title not like '%國旗%' and taxonomy = 'category' order by ID desc
這篇文章涉及的表主要有:
wp_posts:存儲文章(包括頁面、上傳文件、修訂)
wp_terms:存儲每個分類、標簽
wp_term_relationships:存儲每個文章、鏈接和對應分類的關系
wp_term_taxonomy:存儲每個分類、標簽所對應的分類
這幾個表中的各個字段的含義:
- wp_posts
- ID:ID
- post_author:對應作者ID
- post_date:發布時間
- post_date_gmt:發布時間(GMT+0時間)
- post_content:正文
- post_title:標題
- post_excerpt:摘錄
- post_status:文章狀態(publish/auto-draft/inherit等)
- comment_status:評論狀態(open/closed)
- ping_status:PING狀態(open/closed)
- post_password:文章密碼
- post_name:文章縮略名
- to_ping:未知
- pinged:已經PING過的鏈接
- post_modified:修改時間
- post_modified_gmt:修改時間(GMT+0時間)
- post_content_filtered:未知
- post_parent:父文章,主要用于PAGE
- guid:未知
- menu_order:排序ID
- post_type:文章類型(post/page等)
- post_mime_type:MIME類型
- comment_count:評論總數
- wp_terms
- term_id:分類ID
- name:分類名
- slug:別名
- term_group:未知
- wp_term_relationships
- object_id:對應文章ID/鏈接ID
- term_taxonomy_id:對應分類方法ID
- term_order:排序
- wp_term_taxonomy
- term_taxonomy_id:分類方法ID
- term_id:分類id
- taxonomy:分類方法(category/post_tag)
- description:未知
- parent:所屬父分類方法ID
- count:文章數統計
新聞熱點
疑難解答
圖片精選