Home >Backend Development >PHP Tutorial >Detailed explanation of the use of get_post and get_posts functions in WordPress development, wordpressget_post_PHP tutorial
get_post()
In general theme production, we rarely use the get_post() function, but because we will talk about get_posts() later, we have to talk about this singular form first. The main function of this function is to return a specified article in the form of an object or array so that we can use it later. Let us briefly understand how to use it.
get_post() function description
The function names of WordPress are always so easy to understand. The get_post() function is just like its name, which is to get an article and return a specified article in the form of an object or array for us to use later.
Function usage
<?php get_post($post_id, $output); ?>
The $post_id variable is used to set the ID of the article to be obtained. It should be noted that we cannot directly give an actual value to this variable, otherwise an error will be reported. We can only call it in the following form.
$pid = 158; get_post($pid); //如果像get_post(158);这样调用则会报错
$post_id, the default value is none. After testing, if this variable is not set, an error will be reported. Personally, I feel that this variable does not have a default value.
The $output variable is used to set the type of returned data. There are three types: object, associative array, and numeric array.
Object: OBJECT
Associative array: ARRAY_A
Numeric array: ARRAY_N
Default value: OBJECT
Usage examples
<?php $mypost_id = 158; $post_id_158 = get_post($mypost_id, ARRAY_A); $title = $post_id_158['post_title']; ?>
get_posts
The get_posts function is simply the new plural form of get_post. However, because it extracts multiple articles, the usage method is slightly different. It supports many parameters to select the articles that need to be extracted. It is often used in CMS themes. Of course, if you have a deeper understanding of WordPress, you may also use WP_Query to replace this function. This is a story for another time. Today I will mainly introduce the get_posts function.
Detailed explanation of get_posts function
This function is a built-in function of WordPress and is used to extract multiple specified or random articles in WordPress.
The more you describe a simple function, the more complicated it is to use. You need to read the following carefully!
How to use
<?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 are necessary variables for this function
get_posts( $args ) will return an array of variables.
Detailed explanation of variable parameters
<?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' ); ?>
Note:
Example
We just talked about using arrays to pass parameters. Of course, we can also use strings to pass parameters to the function. Here is a simple example.
<?php $posts_rand = get_posts('numberposts=3&orderby=rand'); ?>
The above code is used to randomly get 3 articles in WordPress.
Summary
In fact, the query_posts() and get_posts() functions accept most parameters, use database query statements with the same structure, and can achieve the same purpose. However, some theme authors suggest that query_posts() may disrupt the WordPress main loop. So it is not recommended to use it here.
It is not difficult to use get_posts, but the difficulty is how to display it on the page after getting the article. This requires a certain knowledge of PHP.
If you want to display the query content outside the article loop, you can take a look at the setup_postdata function. This function will be of great help to those who are used to using template tags.