sql命令选出WordPress数据库中指定分类的文章

admin
admin
admin
376
文章
102
评论
2021年12月13日11:12:07 2 368

sql命令选出WordPress数据库中指定分类的文章

在WordPress程序里面,如果从后台找出同一分类的文章是比较容易的,但如果必须从数据库里面筛选出同一分类的文章,并从文章表单wp_posts里面选出文章的id、title等其他字段该如何操作呢?

可以按照以下sql语句进行操作(需要指定对应分类的id):

select post_title
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 post_type="post" 
and post_status = "publish" 
and wp_term_relationships.term_taxonomy_id = 197 
and taxonomy = "category"

由于这段sql语句比较长,我将其分行显示,方便我进行逐一解释:

我们用到的sql语句是:select * from 表 where 条件

post_title是WordPress文章标题字段,根据需要可以改成wp_posts表里面的其他字段;

from后面有三张表,因为WordPress数据库字段里面的分类方法有很多,我们必须单独将文章分类筛选出来,所以必须用到三个表:wp_posts文章表、term_relationships分类关系表、wp_term_taxonomy分类方法表。

where后面跟的有好几个条件:

1、 ID=object_id,这里指的是表wp_posts里面的id和wp_term_relationships表里面的object_id值一样;

2、wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id,这里指的是表wp_term_relationships和表wp_term_taxonomy,他们有共同的字段term_taxonomy_id,这个字段的值一样;

3、post_type="post" and post_status = "publish" ,post_type和post_status都是wp_posts里面的字段。

post_type="post"意思是发布类型为文章(发布类型有post、picture、page、nav_menu_item

post_status = "publish" 意思是发布状态为发布(发布状态有publish/trash/auto-draft/inherit

4、taxonomy = "category",taxonomy是wp_term_taxonomy里面的分类方法字段,category表示分类方法为文章分类。

5、最重要的就是这个,我们需要筛选哪个分类,就必须要制定这个分类的id(在WordPress后台文章分类里面找对应分类的id,也可以在表wp_terms里面找对应分类id),比如说我们的分类id为197,那么只需要指定wp_term_relationships.term_taxonomy_id = 197即可;

由于WordPress的分类比较复杂,上面选出指定分类文章的sql语句涉及到有WordPress四个数据表,可以参考下面两篇文章详细了解:

参考详细介绍WordPress数据库表wp_posts

参考Mysql修改WordPress文章分类目录、标签涉及到的数据库表

admin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  1   博主  1
    • 彭于晏 彭于晏 1

      谢谢你的文章,帮了我很多。我不懂SQL,但你的内容恰好是我的需求,谢谢你,谢谢百度。

        • admin admin

          @ 彭于晏 不客气,我也不懂程序,是个外行,关于sql数据库的文章都是我自己在建站过程中的自学笔记,如果刚好能够帮到你是我的荣幸。