兰桂齐芳 發表於 2023-6-14 00:00:00

WordPress开发中的get_post_custom()函数使用解析

<p>
同get_post_meta()一样,用于返回文章的自定义字段值得一个函数,只不过get_post_custom()函数使用起来更简单,如果在循环中使用你甚至不需要设置任何参数。</p>
<p>
其实get_post_custom()函数的基础实现与get_post_meta()大同小异~</p>
<p>
<strong>get_post_custom()使用</strong></p>
<div>
<div>
<div id="highlighter_131696">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>get_post_custom(</code><code>$postid</code><code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
只接受一个参数<br>
$postid文章id;</p>
<p>
实例演示</p>
<div>
<div>
<div id="highlighter_549279">
<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>
</td>
<td>
<div>
<div>
<code>if</code> <code>(have_posts()) :</code>
</div>
<div>
 </div>
<div>
<code>while</code> <code>(have_posts()) : the_post(); </code>
</div>
<div>
<code> </code><code>var_dump(get_post_custom());</code>
</div>
<div>
 </div>
<div>
<code>endwhile</code><code>; </code>
</div>
<div>
 </div>
<div>
<code>endif</code><code>;</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_370290">
<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>
</td>
<td>
<div>
<div>
<code>array(4) {</code>
</div>
<div>
<code>[“_edit_last”]=&gt;</code>
</div>
<div>
<code>array(1) {</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(1) “1”</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>[“_edit_lock”]=&gt;</code>
</div>
<div>
<code>array(1) {</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(12) “1342451729:1”</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>[“_thumbnail_id”]=&gt;</code>
</div>
<div>
<code>array(1) {</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(3) “228”</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>[“xzmeta”]=&gt;</code>
</div>
<div>
<code>array(2) {</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(3) “xz1”</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(3) “xz2”</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>get_post_custom_values和get_post_custom_keys</strong></p>
<p>
因为自定义字段分为,键值(keys) 和 自定义字段值(values),有些时候我们需要单独获取这两个值,所以 WordPress 中就派生出了get_post_custom_values和get_post_custom_keys两个函数,至于意义嘛,我还真没有发现出有多大意义,除了在批量删除自定义字段的时候有一定用除外,我还真没想出什么地方能用到,也许在一个浩瀚的 CMS主题中会有着非常剧组轻重的意义。</p>
<p>
之前写到了get_post_custom函数和get_post_meta函数,私下里想着,反正自定义字段的相关函数也不多,所以就顺手整理了一下,索性把自定义字段相关的函数都写一下,当然不包括函数的一些基础实现代码。<br>
get_post_custom_values用于获取当前文章的指定自定义字段的值,并以数组形式返回。</p>
<div>
<div>
<div id="highlighter_915839">
<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>
</td>
<td>
<div>
<div>
<code>while</code> <code>(have_posts()) : the_post(); </code>
</div>
<div>
<code> </code><code>var_dump(get_post_custom_values(‘xzmeta'));</code>
</div>
<div>
<code>endwhile</code><code>; </code>
</div>
<div>
 </div>
<div>
<code>endif</code><code>;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
大致会返回如下结果</p>
<p>
(如果自定义字段有设置)</p>
<div>
<div>
<div id="highlighter_65030">
<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>
</td>
<td>
<div>
<div>
<code>array</code><code>(2) {</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(3) “xz1”</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(3) “xz2”</code>
</div>
<div>
<code>}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
get_post_custom_keys用于获取当前文章所有的自定义字段的键值。</p>
<div>
<div>
<div id="highlighter_700574">
<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>
</td>
<td>
<div>
<div>
<code>if</code> <code>(have_posts()) :</code>
</div>
<div>
<code>while</code> <code>(have_posts()) : the_post(); </code>
</div>
<div>
<code> </code><code>var_dump(get_post_custom_keys());</code>
</div>
<div>
<code>endwhile</code><code>; </code>
</div>
<div>
<code>endif</code><code>;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
大致会获得 以下结果:<br>
(如果自定义字段有设置)</p>
<div>
<div>
<div id="highlighter_202269">
<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>
</td>
<td>
<div>
<div>
<code>array</code><code>(4) {</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(10) “_edit_last”</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(10) “_edit_lock”</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(13) “_thumbnail_id”</code>
</div>
<div>
<code>=&gt;</code>
</div>
<div>
<code>string(6) “xzmeta”</code>
</div>
<div>
<code>}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
頁: [1]
查看完整版本: WordPress开发中的get_post_custom()函数使用解析