»

WordPress 中的主循环(The Loop)和全局变量

    WordPress  
工作百度云加速伪静态WP Rocket缓存访问重定向建站爬虫cookiesIISweb.config防盗链Wp Super Cache浏览器wordpresswindows主机前端CDNCLBWordPress插件身份认证插件网站镜像SEO

当我们进行 WordPress 开发的时候,首先我们必须要了解主循环和全局变量,这样才知道可以访问哪个全局变量。下面就讲解下 WordPress 主循环,以便能更好理解哪些全局变量可以被主循环中的模板函数调用。

 

WordPress 主循环

WordPress 主循环(The Loop)是用来显示日志列表,和在单篇日志页面页显示留言列表的。

wordpress-loop

在默认主题的 index.php 中,主循环的代码如下:

  1. <?php if (have_posts()) : ?>  
  2. <?php while (have_posts()) : the_post(); ?>  
  • have_posts() 和 the_post() 这两个函数都是类 WP_Query 的方法。
  • have_posts这个函数去查看当前显示的日志数是否达到了在 WordPress 后台设置的要显示的日志数,这个主循环将会继续直到达到为止。
  • 如果你看过过 the_post 函数的源代码,就会发现它会搜索 $post 这个全局变量。 the_post函数获取第一篇日志(随后的日志通过每次循环获取下一个),并设置日志的数据(如作者,多重-页面,等等),这些数据是 WordPress 赋给 $post 这个全局变量的,所以我们可以访问它。

the_post() 函数被调用之后,我们就可以使用许多模板函数和全局变量。

下面就是现在可用的部分模板函数:

  • the_author:获取作者的名字。
  • the_title:显示当前日志的标题。
  • the_content:显示日志的内容。
  • the_permalink:显示日志的永久链接的 URL。
  • the_ID:显示日志的 ID。

下面是在主循环中可用的全局变量:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

  • 全局变量 authordata
  1. global $authordata;  
  2. echo $authordata->display_name;  

通过 authordata 这个全局变量还可以获取作者的下面这些信息:last_name,first_name,ID,user_email,user_url,user_login,description 和其他。

  • 全局变量 post
  1. global $post;  
  2. echo $post->post_content;  

通过 post 这个全局变量还可以获取文章的这些信息:ID,post_title, post_author,post_date,post_excerpt,comment_count 和其他。

注意通过这种方法获取的日志内容是没有经过过虑的。如果你想自己去操纵日志的内容,比如自己设置日志内容的显示方式,通过这种方式获取的日志内容非常有用。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

  • 全局变量 id
  1. global $id;  
  2. echo $id;  

 

制作你自己的模板函数

假设我们写了一个叫做 get_my_trackback 自定义的模板函数,它能够在文章的留言循环中每次检测到留言如果是 trackback 的时候做出一些动作。我们可以把这个函数放入 comment.php 模板文件的 foreach 留言循环中。

  1. <?php foreach ($comments as $comment) : ?>  
  2. <?php get_my_trackback();?>  
  3. <?php endforeach/* end for each comment */ ?>  

然后在当前主题的 function 文件中添加 get_my_trackback 函数代码:

  1. <?php function get_my_trackback() {  
  2.     global $comment;  
  3.     if (empty($comment))   
  4.         return;  
  5.     if ($comment->comment_type != 'comment') {  
  6.         //do trackback stuff  
  7.     }  
  8. }  
  9. ?>  

comments-loop

comments 这个全局变量能够让我们访问到当前留言的所有数据,所以可以让我们对留言做任何事情。

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

来源:https://blog.wpjam.com/article/global-variables-and-the-wordpress-loop/

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 1735字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →