我们在wordpress开发中,经常会调取分类下所有文章输出到首页的某个位置,我们通常是使用query_posts()
函数。
今天给大家分享一种方法,通过$wpdb
获取一个分类下所有的文章。
在wordpress程序根目录下新建一个php文件,粘贴下面的代码
如下面的代码注释,修改$CID这个分类id,就可以获取这个分类下的文章了。这个查询需要联合三个表wp_posts、wp_term_relationships
、wp_term_taxonomy
,
根据term_taxonomy_id
获取文章标号,post_status = ‘publish’
是指文章已经发布,post_type=’post’
是指记录类型是文章,taxonomy = ‘category’
是指类型是目录。
然后运行这个文件,就可以读取这个分类下的所有的文章了。
<?php
include ( "wp-config.php" ) ;
require_once (ABSPATH.'wp-blog-header.php');
global $wpdb;
$CID = 1;//分类id,只支持一个分类
$sql="SELECT ID,post_title,post_content 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";
$myrows = $wpdb->get_results($sql);
foreach ($myrows as $b) {
echo $b->ID."<br />";//这是文章ID
echo $b->post_title."<br />";//这是文章标题
echo $b->post_content."<br />";//这是文章内容
}
?>
通过以上的代码,我们可以在网站内容页面,调用文章指定分类下的所有文章列表。如下图: