秋菊子 發表於 2023-6-10 00:00:00

WordPress开发中用于获取近期文章的PHP函数使用解析

<p>
wp_get_recent_posts 函数在 WordPress 中是一个可以获取近期文章数组的函数,相较于其他的文章获取方式, wp_get_recent_posts 返回的将是一个数组而不是对象,所以在使用中对于一些新手或者是懒人,可能会更方便一些,下面我们就实例讲解一下这个函数。</p>
<p>
<strong>描述</strong><br>
wp_get_recent_posts<br>
英文解释很短,就不贴了,<br>
中文大概意思是:获取最新文章的函数。<br>
实际上这是一个 get_posts函数的再使用。<br>
描述的再好也木用,下面看使用。</p>
<p>
<strong>使用/用法</strong></p>
<div>
<div>
<div id="highlighter_972153">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>&lt;?php </code>
</div>
<div>
<code> </code><code>wp_get_recent_posts( </code><code>$args</code> <code>) </code>
</div>
<div>
<code>?&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数默认值</p>
<div>
<div>
<div id="highlighter_814052">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
<div>
21</div>
<div>
22</div>
<div>
23</div>
<div>
24</div>
<div>
25</div>
<div>
26</div>
</td>
<td>
<div>
<div>
<code>&lt;?php </code><code>$args</code> <code>= </code><code>array</code><code>(</code>
</div>
<div>
<code>//获取的文章数量</code>
</div>
<div>
<code>  </code><code>'numberposts'</code> <code>=&gt; 10,</code>
</div>
<div>
<code>//从第几篇开始获取</code>
</div>
<div>
<code>  </code><code>'offset'</code> <code>=&gt; 0,</code>
</div>
<div>
<code>//分类的ID,如果不设置则显示全部分类</code>
</div>
<div>
<code>  </code><code>'category'</code> <code>=&gt; 0,</code>
</div>
<div>
<code>//排序规则 (注1,下详)</code>
</div>
<div>
<code>  </code><code>'orderby'</code> <code>=&gt; </code><code>'post_date'</code><code>,</code>
</div>
<div>
<code>//升、降序排列</code>
</div>
<div>
<code>  </code><code>'order'</code> <code>=&gt; </code><code>'DESC'</code><code>,</code>
</div>
<div>
<code>//包括的文章ID</code>
</div>
<div>
<code>  </code><code>'include'</code> <code>=&gt; ,</code>
</div>
<div>
<code>//排除的文章ID</code>
</div>
<div>
<code>  </code><code>'exclude'</code> <code>=&gt; ,</code>
</div>
<div>
<code>//自定义字段名称</code>
</div>
<div>
<code>  </code><code>'meta_key'</code> <code>=&gt; ,</code>
</div>
<div>
<code>//自定义字段的值,配合上一个参数,来选择显示符合自定义字段数值的文章。</code>
</div>
<div>
<code>  </code><code>'meta_value'</code> <code>=&gt;,</code>
</div>
<div>
<code>//文章类型:文章或页面</code>
</div>
<div>
<code>  </code><code>'post_type'</code> <code>=&gt; </code><code>'post'</code><code>,</code>
</div>
<div>
<code>//文章状态:草稿、已发布、隐藏文章等....</code>
</div>
<div>
<code>  </code><code>'post_status'</code> <code>=&gt; </code><code>'draft, publish, future, pending, private'</code><code>,</code>
</div>
<div>
<code>//这个木研究</code>
</div>
<div>
<code>  </code><code>'suppress_filters'</code> <code>=&gt; true ); </code>
</div>
<div>
<code>?&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>实例</strong><br>
因为跟 get_posts 的使用方法实在是很相似,<br>
所以就不给什么高深的例子了,简单的给一个官方的例子。</p>
<div>
<div>
<div id="highlighter_917229">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
</td>
<td>
<div>
<div>
<code>&lt;h2&gt;Recent Posts&lt;/h2&gt;</code>
</div>
<div>
<code>&lt;ul&gt;</code>
</div>
<div>
<code>&lt;?php</code>
</div>
<div>
<code> </code><code>//获取最新文章</code>
</div>
<div>
<code> </code><code>$recent_posts</code> <code>= wp_get_recent_posts();</code>
</div>
<div>
<code> </code><code>//遍历出每一篇文章。</code>
</div>
<div>
<code> </code><code>foreach</code><code>( </code><code>$recent_posts</code> <code>as</code> <code>$recent</code> <code>){</code>
</div>
<div>
<code> </code><code>echo</code> <code>'&lt;li&gt;&lt;a href="'</code> <code>. get_permalink(</code><code>$recent</code><code>["ID</code><code>"]) . '"</code> <code>title=</code><code>"Look '.esc_attr($recent["</code><code>post_title</code><code>"]).'"</code> <code>&gt;' .  </code><code>$recent</code><code>[</code><code>"post_title"</code><code>].</code><code>'&lt;/a&gt; &lt;/li&gt; '</code><code>;</code>
</div>
<div>
<code> </code><code>}</code>
</div>
<div>
<code>?&gt;</code>
</div>
<div>
<code>&lt;/ul&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
总结<br>
注意:因为wp_get_recent_posts函数的返回值是一个数组,<br>
setup_postdata 函数理论上只能接受对象类型的变量,<br>
所以按照官方文档的解释是不能使用setup_postdata函数,装载到循环中使用的。<br>
因为用的不多,所以我也就没有去试,有兴趣的同学可以试一试看能否成功。<br>
所以说,如果使用 setup_postdata 函数的话,<br>
wp_get_recent_posts 函数不如 get_posts 函数使用起来方便。</p>
<p>
注:<br>
‘author' —— 按作者数值编号排序<br>
‘category' —— 按类别数值编号排序<br>
‘content' —— 按内容排序<br>
‘date' —— 按创建日期排序<br>
‘ID' —— 按文章编号排序<br>
‘menu_order' —— 按菜单顺序排序。仅页面可用。<br>
‘mime_type' —— 按MIME类型排序。仅附件可用。<br>
‘modified' —— 按最后修改时间排序。<br>
‘name' —— 按存根排序。<br>
‘parent' —— 按父级ID排序<br>
‘password' —— 按密码排序<br>
‘rand' —— 任意排序结果<br>
‘status' —— 按状态排序<br>
‘title' —— 按标题排序<br>
‘type' —— 按类型排序</p>
頁: [1]
查看完整版本: WordPress开发中用于获取近期文章的PHP函数使用解析