wordpress 的内置函数 get_posts 用来提取数据库中多篇指定文章或者是随机文章,今天研究了下,其使用的方法还不算是很麻烦,主要是解析其函数都有哪些方法,先看一下用法,代码如下:
< ?php $posts_array = get_posts( $args ); ?>
下面再看一下$args的参数:
< ?php
$args = array(
//需要提取的文章数
"numberposts" => 10,//以第几篇文章为起始位置
"offset" => 0,//分类的ID,多个用逗号将分类编号隔开,或传递编号数组,可指定多个分类编号。
//大部分 CMS 使用该函数的重点。
"category" => ,//排序规则(注1)
"orderby" => "post_date",//升序、降序 "ASC" —— 升序 (低到高) "DESC" —— 降序 (高到底)
"order" => "DESC",//要显示文章的ID
"include" => ,//要排除文章的ID
"exclude" => ,//自定义字段名称
"meta_key" => ,
//自定义字段的值,配合上一个参数,来选择显示符合自定义字段数值的文章。
"meta_value" => ,//post(日志)——默认,page(页面),
//attachment(附件),any —— (所有)
"post_type" => "post",//文章的 mime 类型
"post_mime_type" => ,//要显示文章的父级 ID
"post_parent" => ,//文章状态
"post_status" => "publish" );
?>
现在我们再来看它的用法:
最初到现在的文章列表
如果在博客首页上只设置显示一篇文章,但同时希望在分类ID 1中显示最近五篇文章的链接,可使用如下代码:
注意:使用offset时,以上查询仅适用于含有一篇以上文章的分类,否则无法输出。
获取所有文章资料
默认情况下get_posts无法获取一些文章相关数据,如通过 the_content()获取文章内容或序列ID。调用内部函数setup_postdata(),以$post 数组为其自变量,可以解决这一问题:
< ?php
$lastposts = get_posts('numberposts=3');
foreach($lastposts as $post) :
setup_postdata($post);
?>
不希望通过调用setup_postdata()来获取文章的ID或内容,或者获取文章的任何相关数据时(数据存留在文章列表中),可以使用$post->COLUMN,COLUMN是文章数据表格的纵列名称。因此$post->ID指明文章ID,$post->post_content指明文章内容,以此类推。如要在页面上显示这些数据,请使用PHP echo命令,如下所示:
< ?php echo $post->ID; ?>
按标题为最新发表文章排序
以下代码可按字母升序显示最近发表的十篇文章的发布日期、标题和摘要:
< ?php
$postslist = get_posts('numberposts=10&order=ASC&orderby=title');
foreach ($postslist as $post) :
setup_postdata($post);
?>
注意:排序参数在2.6版本中有所修改。此代码适用于新排序格式。详细内容参见参数。
任意文章
用MySQL RAND()函数指定排序参数的值,可以显示出随意选择的五篇文章:
显示所有附件
不用模板中任何循环进行本项操作。
(使用2.5版本后的get_children()函数相对方便。)
< ?php
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => null, // any parent
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $post) {
setup_postdata($post);
the_title();
the_attachment_link($post->ID, false);
the_excerpt();
}
}
?>
显示最新文章的附件
在The_Loop ($post->ID可用)中进行本类操作。
< ?php
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
echo apply_filters('the_title', $attachment->post_title);
the_attachment_link($attachment->ID, false);
}
}
?>
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级