WordPress直接访问数据库列出指定分类目录下的所有文章

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WordPress直接访问数据库列出指定分类目录下的所有文章相关的知识,希望对你有一定的参考价值。

我的问题是:在我迁移wordpress数据库文件的时候,发现网站下所有的文章都没有了分类,查了许久才发现原来是数据库里面少了个关联分类与文章的表,也就是wp_term_relationships表。重新导入问题解决。其中这篇文章给我启发。在此收藏一下。

中需要实现根据分类目录ID获取该分类目录下所有文章的功能。如果用Wordpress自带的函数当然非常简单,但由于笔者对主题开发不甚熟悉,因此用纯php脚本直接访问数据库实现了该功能。

首先,介绍一下Wordpress数据库中的几个表:

文章表--wp_posts:文章ID(ID)、标题(post_title)、发布时间(post_time)、别名(post_name)(文章固定链接使用的URL)、状态(post_status)、类型(post_type)等。

友情链接表--wp_links:友情链接等链接信息。

博客主题表--wp_options:博客题目、描述、站点URL等信息。

标签表--wp_terms:标签编号、名称、别名;分类目录名称、别名。

wp_term_relationships:对象ID(object_id,部分对应文章ID),对象分类ID(term_taxonomy_id,部分对应分类目录编号)

分类目录表--wp_term_taxonomy:词项分类标号(term_taxonomy_id)、词项编号(term_id)、类型(taxonomy,目录标签导航菜单)、文章数(count)

wp_users:用户表,所有后台登录帐号

wp_usermeta:用户信息表,用户姓名、邮箱、描述等。

wp_conmments:评论表

wp_commentmeta:不清楚其功能

2. 通过分类目录编号获取文章列表的原理介绍

显然为了实现我们的功能,需要用到wp_terms、wp_term_relationships、wp_term_taxonomy三个表。 

(1)假设给定的分类ID为$CID,那么$CID就对应wp_term_taxonomy表中的term_taxonomy_id字段,因此我们可以很容易获得该分类下的文章数:

$sql=”select count from wp_term_taxonomy where term_taxonomy_id=$CID and taxonomy =’category’ “;

(2)根据term_taxonomy_id获取文章标号和标题的SQL,需要联合三个表进行查询,post_status = ‘publish’ 是指文章已经发布,post_type=’post’ 是指记录类型是文章,taxonomy = ‘category’ 是指类型是目录。该SQL比较长,您可以先理解这三个表的参照关系后再自己写SQL语句或者直接用这条SQL。

$sql=”select ID,post_title,post_date,post_name 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 = $CID and taxonomy = ‘category’ order by ID desc”; //文章类型:日志 状态:已发布

3. 显示效果

关于如何直接连接数据库?

数据库名称、用户名、密码等信息都保存在根目录下的wp-config文件中,因此我们引入该页面,调用其中的变量即可。

 <?php   
    include 
    ( 
    "wp-config.php" 
    ) 
    ; 
    //根据需要修改路径   
    $conn 
    = 
    mysql_connect 
    (DB_HOST 
    ,DB_USER 
    ,DB_PASSWORD 
    ) 
    ;   
    mysql_select_db 
    (DB_NAME 
    ) 
    ;   
    mysql_query 
    ( 
    "set names utf-8" 
    ) 
    ; 
    ?> 
   

来源:https://my.oschina.net/shunshun/blog/88692

 

以上是关于WordPress直接访问数据库列出指定分类目录下的所有文章的主要内容,如果未能解决你的问题,请参考以下文章

wordpress怎样实现调用指定分类文章里的图片 标题 和摘要

列出Wordpress自定义分类

Wordpress开启https访问

全代码实现WordPress分类目录和标签添加新的自定义字段

WordPress文章调用

wordpress网站分类目录怎么排序