秋天枫叶 發表於 2023-6-9 00:00:00

WordPress开发中用于标题显示的相关函数使用解析

<p>
<strong>single_cat_title()函数</strong><br>
single_cat_title()函数,日常中我们很少会用到,但这个函数会给我们解决很多问题,诸如当前页面的目录、标签,该函数不依附于 WordPress 主循环中,也不能放入主循环中使用。</p>
<p>
描述<br>
获取当前页面的分类、标签。</p>
<div>
<div>
<div id="highlighter_699885">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>&lt;?php single_cat_title(</code><code>$prefix</code><code>,</code><code>$display</code><code>); ?&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<ul>
<li>
$prefix :用于设置在标题之前显示的内容。</li>
<li>
$display :用于设置是直接显示还是返回到变量。</li>
</ul>
<p>
实例<br>
在此摘取 WordPress 2011 默认主题中,category.php 文件 第18行左右位置的代码</p>
<div>
<div>
<div id="highlighter_215265">
<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>printf( __( </code><code>'Category Archives: %s'</code><code>, </code><code>'twentyeleven'</code> <code>), </code><code>'&lt;span&gt;'</code> <code>. single_cat_title( </code><code>''</code><code>, false ) . </code><code>'&lt;/span&gt;'</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>
<strong>get_the_title 和 the_title</strong><br>
get_the_title 和 the_title 两个函数用来在文章页面显示文章标题的函数,之所以将两个函数合并到一篇文章里面去是因为这两个函是一个实现,只不过 the_title 默认直接显示,get_the_title 默认返回字符串,如果你对此心存疑惑,那请你往下看。</p>
<p>
函数详解<br>
get_the_title 和 the_title这两个函数主要用于在循环中显示当前文章的标题,请注意 the_title 这个函数必须使用在循环中。<br>
两者的区别在于,get_the_title仅能以字符串形式返回文章标题,而 the_title 可以设置标题前后的自定义字符,以及是显示还是返回字符串。</p>
<p>
the_title 函数使用、参数详解</p>
<div>
<div>
<div id="highlighter_163810">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>&lt;?php the_title( </code><code>$before</code><code>, </code><code>$after</code><code>, </code><code>$echo</code> <code>); ?&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<ul>
<li>
$before标题前的字符</li>
<li>
$after标题后的字符</li>
<li>
$echo显示、还是返回字符串,默认为true</li>
</ul>
<p>
the_title示例</p>
<div>
<div>
<div id="highlighter_18584">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>&lt;?php the_title( ‘=&gt;</code><code>', ‘&lt;='</code> <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_182946">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>‘=&gt;get_the_title 和 the_title&lt;='</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
get_the_title 函数使用、参数详解</p>
<div>
<div>
<div id="highlighter_826948">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>&lt;?php </code><code>$myTitle</code> <code>= get_the_title(</code><code>$ID</code><code>); ?&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
以上代码我们将得到文章标题的变量$myTitle;<br>
$ID 用于设置文章 ID ,当然在循环中我们可以省略此参数。</p>
<p>
get_the_title 示例</p>
<div>
<div>
<div id="highlighter_609861">
<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>
</td>
<td>
<div>
<div>
<code>&lt;?php</code>
</div>
<div>
<code> </code><code>$myTitle</code> <code>= get_the_title(</code><code>$ID</code><code>); </code>
</div>
<div>
<code> </code><code>echo</code> <code>$mytitle</code><code>.</code><code>'【标题演示】'</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>
<p>
get_the_title 和 the_title【标题演示】</p>
<p>
总结<br>
说了这么多,不知道对您是否有所帮助?<br>
总的来说 the_title 是 get_the_title的更高一级封装。就像在 wp_title中说的那样,更高级封装,虽然使用起来简单,但能折腾花样相对少了点。<br>
下面是该两个函数的源代码</p>
<p>
the_title 函数声明<br>
该函数位于 wp-include/post-template.php 文件的 43 – 55行左右的位置</p>
<div>
<div>
<div id="highlighter_934381">
<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>
</td>
<td>
<div>
<div>
<code>&lt;?php</code>
</div>
<div>
<code>/**</code>
</div>
<div>
<code> </code><code>* Display or retrieve the current post title with optional content.</code>
</div>
<div>
<code> </code><code>*</code>
</div>
<div>
<code> </code><code>* @since 0.71</code>
</div>
<div>
<code> </code><code>*</code>
</div>
<div>
<code> </code><code>* @param string $before Optional. Content to prepend to the title.</code>
</div>
<div>
<code> </code><code>* @param string $after Optional. Content to append to the title.</code>
</div>
<div>
<code> </code><code>* @param bool $echo Optional, default to true.Whether to display or return.</code>
</div>
<div>
<code> </code><code>* @return null|string Null on no title. String if $echo parameter is false.</code>
</div>
<div>
<code> </code><code>*/</code>
</div>
<div>
<code>function</code> <code>the_title(</code><code>$before</code> <code>= </code><code>''</code><code>, </code><code>$after</code> <code>= </code><code>''</code><code>, </code><code>$echo</code> <code>= true) {</code>
</div>
<div>
<code> </code><code>$title</code> <code>= get_the_title();</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>if</code> <code>( </code><code>strlen</code><code>(</code><code>$title</code><code>) == 0 )</code>
</div>
<div>
<code> </code><code>return</code><code>;</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>$title</code> <code>= </code><code>$before</code> <code>. </code><code>$title</code> <code>. </code><code>$after</code><code>;</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>if</code> <code>( </code><code>$echo</code> <code>)</code>
</div>
<div>
<code> </code><code>echo</code> <code>$title</code><code>;</code>
</div>
<div>
<code> </code><code>else</code>
</div>
<div>
<code> </code><code>return</code> <code>$title</code><code>;</code>
</div>
<div>
<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>
get_the_title 函数声明<br>
该函数位于 wp-include/post-template.php 文件的 103 – 118行左右的位置</p>
<div>
<div>
<div id="highlighter_698129">
<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>
<div>
27</div>
<div>
28</div>
<div>
29</div>
<div>
30</div>
<div>
31</div>
</td>
<td>
<div>
<div>
<code>&lt;?php</code>
</div>
<div>
<code>/**</code>
</div>
<div>
<code> </code><code>* Retrieve post title.</code>
</div>
<div>
<code> </code><code>*</code>
</div>
<div>
<code> </code><code>* If the post is protected and the visitor is not an admin, then "Protected"</code>
</div>
<div>
<code> </code><code>* will be displayed before the post title. If the post is private, then</code>
</div>
<div>
<code> </code><code>* "Private" will be located before the post title.</code>
</div>
<div>
<code> </code><code>*</code>
</div>
<div>
<code> </code><code>* @since 0.71</code>
</div>
<div>
<code> </code><code>*</code>
</div>
<div>
<code> </code><code>* @param int $id Optional. Post ID.</code>
</div>
<div>
<code> </code><code>* @return string</code>
</div>
<div>
<code> </code><code>*/</code>
</div>
<div>
<code>function</code> <code>get_the_title( </code><code>$id</code> <code>= 0 ) {</code>
</div>
<div>
<code> </code><code>$post</code> <code>= &amp;get_post(</code><code>$id</code><code>);</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>$title</code> <code>= isset(</code><code>$post</code><code>-&gt;post_title) ? </code><code>$post</code><code>-&gt;post_title : </code><code>''</code><code>;</code>
</div>
<div>
<code> </code><code>$id</code> <code>= isset(</code><code>$post</code><code>-&gt;ID) ? </code><code>$post</code><code>-&gt;ID : (int) </code><code>$id</code><code>;</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>if</code> <code>( !is_admin() ) {</code>
</div>
<div>
<code> </code><code>if</code> <code>( !</code><code>empty</code><code>(</code><code>$post</code><code>-&gt;post_password) ) {</code>
</div>
<div>
<code>  </code><code>$protected_title_format</code> <code>= apply_filters(</code><code>'protected_title_format'</code><code>, __(</code><code>'Protected: %s'</code><code>));</code>
</div>
<div>
<code>  </code><code>$title</code> <code>= sprintf(</code><code>$protected_title_format</code><code>, </code><code>$title</code><code>);</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code> <code>( isset(</code><code>$post</code><code>-&gt;post_status) &amp;&amp; </code><code>'private'</code> <code>== </code><code>$post</code><code>-&gt;post_status ) {</code>
</div>
<div>
<code>  </code><code>$private_title_format</code> <code>= apply_filters(</code><code>'private_title_format'</code><code>, __(</code><code>'Private: %s'</code><code>));</code>
</div>
<div>
<code>  </code><code>$title</code> <code>= sprintf(</code><code>$private_title_format</code><code>, </code><code>$title</code><code>);</code>
</div>
<div>
<code> </code><code>}</code>
</div>
<div>
<code> </code><code>}</code>
</div>
<div>
<code> </code><code>return</code> <code>apply_filters( </code><code>'the_title'</code><code>, </code><code>$title</code><code>, </code><code>$id</code> <code>);</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>?&gt;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
頁: [1]
查看完整版本: WordPress开发中用于标题显示的相关函数使用解析