详解WordPress开发中的get_post与get_posts函数使用


Posted in PHP onJanuary 04, 2016

get_post()
在一般主题制作时,get_post()函数我们一般很少会用到,但因为后面会讲到get_posts(),所以我们不得不先讲一下这个单数形式。这个函数的主要作用是,将一片指定的文章以一个对象或是数组的形式返回,以便我们后期利用。下面让我们简单的了解一下他的使用方法。

get_post()函数说明
WordPress 的函数名总是那么浅显易懂,get_post()函数正如其表,即获得一篇文章,将一篇指定的文章以一个对象或是数组的形式返回,以便我们后期利用。

函数使用

<?php
 get_post($post_id, $output); 
?>

$post_id变量,用于设置将要获取文章的ID,需要注意的是,这个变量我们不可以直接给一个实际值,那样会报错,我们只能以下面这样的形式调用。

$pid = 158;
get_post($pid);
//如果像get_post(158);这样调用则会报错

$post_id,默认值是none,经测试,这个变量不设置会报错,个人感觉这个变量好像没有默认值。

$output 变量用于设置返回数据的类型,有三种,对象、关联数组、数值数组。
对象:OBJECT
关联数组:ARRAY_A
数值数组:ARRAY_N
默认值:OBJECT

使用实例

<?php
$mypost_id = 158;
$post_id_158 = get_post($mypost_id, ARRAY_A);
$title = $post_id_158['post_title'];
?>

get_posts 
get_posts 函数,简单的来讲是 get_post 的复数新形势,但因为是文章多篇提取,所以使用方法上却略有不同,支持众多参数选择需要提取的文章,在 CMS 主题中经常被用到,当然如果你对 WordPress 有更深了解的话,你也有可能是用 WP_Query 来替代该函数,这就是后话了,今天主要介绍一下 get_posts 函数。

get_posts 函数详解
该函数属于 WordPress 的内置函数,用于在 WordPress 中提取多篇指定或随机文章。
越是描述简单的函数,使用起来就越是复杂,后面的需要仔细看咯!

使用方法

<?php 
$args = array(
  'numberposts'   => 5,
  'offset'     => 0,
  'category'    => ,
  'orderby'     => 'post_date',
  'order'      => 'DESC',
  'include'     => ,
  'exclude'     => ,
  'meta_key'    => ,
  'meta_value'   => ,
  'post_type'    => 'post',
  'post_mime_type' => ,
  'post_parent'   => ,
  'post_status'   => 'publish' );
$posts_array = get_posts( $args ); 
?>

$args是该函数必要的变量
get_posts( $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' );
?>

注:

  • ‘author' —— 按作者数值编号排序
  • ‘category' —— 按类别数值编号排序
  • ‘content' —— 按内容排序
  • ‘date' —— 按创建日期排序
  • ‘ID' —— 按文章编号排序
  • ‘menu_order' —— 按菜单顺序排序。仅页面可用。
  • ‘mime_type' —— 按MIME类型排序。仅附件可用。
  • ‘modified' —— 按最后修改时间排序。
  • ‘name' —— 按存根排序。
  • ‘parent' —— 按父级ID排序
  • ‘password' —— 按密码排序
  • ‘rand' —— 任意排序结果
  • ‘status' —— 按状态排序
  • ‘title' —— 按标题排序
  • ‘type' —— 按类型排序

实例
刚我们讲到用数组去传参,当然我们也可以用字符串来给该函数传参,下面给一个简单的例子。

<?php
$posts_rand = get_posts('numberposts=3&orderby=rand');
?>

以上代码用于随机在 WordPress 中获取3篇文章。

总结
其实 query_posts() 和 get_posts() 函数,接受大部分的参数,使用同样结构的数据库查询语句,并能达到一样的目的,但部分主题作者提示 query_posts()有可能会扰乱 WordPress 主循环,所以在这里不推荐使用。
get_posts 使用不难,难在获取文章后怎样在页面中显示,这里就需要有一定的 PHP 知识了。
如果是在文章循环之外想要将查询内容显示出来,可以看一下setup_postdata这个函数,这个函数会给那些用惯了模板标签的童鞋很大的帮助。

PHP 相关文章推荐
全文搜索和替换
Oct 09 PHP
php仿discuz分页效果代码
Oct 02 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
PHP常用代码大全(新手入门必备)
Jun 29 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
PHP实现图片上传并压缩
Dec 22 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 #PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 #PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 #PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 #PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 #PHP
大家须知简单的php性能优化注意点
Jan 04 #PHP
weiphp微信公众平台授权设置
Jan 04 #PHP
You might like
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
两个DIV等高的JS的实现代码
2007/12/23 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
Python备份Mysql脚本
2008/08/11 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
对python sklearn one-hot编码详解
2018/07/10 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
Django 重写用户模型的实现
2019/07/29 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
研发工程师岗位职责
2014/04/28 职场文书
爱护公物标语
2014/06/24 职场文书
公司的门卫岗位职责
2014/09/09 职场文书