文档章节

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

李佳顺
 李佳顺
发布于 2012/11/12 14:47
字数 704
阅读 1758
收藏 5

我的问题是:在我迁移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" ) ; ?>

© 著作权归作者所有

李佳顺

李佳顺

粉丝 23
博文 556
码字总数 292312
作品 0
朝阳
程序员
私信 提问
建站程序--wordpress

什么wordpress程序 WordPress起初是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的WordPress。用户可以在支持 PHP 和 MySQL数据库的服务器上使用...

景凌凯
2018/08/30
0
0
centos7.3实现基于源码编译安装LAMP的wordpress应用

WordPress应用 是一款基于PHP开发的博客发布平台。用户可以在支持PHP和MySql的系统上,轻松地搭建WordPress博客系统,并在上面发布自己的博客文章。 关于LAMP,之前的文章中已经有过很多的介...

Eumenides_s
2017/10/12
0
0
搭建个人博客 WordPress

大纲: 一、概述 二、LAMP环境 三、安装WordPress 注,操作系统: CentOS 6.5 x86_64(64位)。 一、概述 WordPress 是一款非常流行的开源博客应用,用户可以在支持PHP和MySQL数据库的服务器...

skypeGNU1
2016/03/29
0
0
WordPress安全设置方案

Author:做一个好人 WordPress作为享誉全球的博客程序,已然被众多爱好者使用在自己的博客程序中,但盛名必然引来注意,更少不了不怀好意的骇客们的虎视眈眈。因此,加固WP成为个人博客或企业...

指尖
2014/05/29
382
0
WordPress内核中一个任意文件删除漏洞,可导致攻击者执行任意代码

        简介   WordPress是目前网络上最受欢迎的CMS。根据w3tech的资料显示,约有30%的网站都在使用它1。这种广泛的采用,也使其成为了网络犯罪分子非常感兴趣的一个目标。在这篇文...

嘶吼RoarTalk
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
30分钟前
7
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
4
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
6
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
6
1
正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置

正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置 今天要用正则表达式实现匹配一个词出现一次或者不出现的情况,但是又不仅仅是这么简单的需求。先详细说下我这种情况吧,也许有...

Airship
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部