网站首页 > 基础教程 正文
当我们进行 WordPress 开发的时候,首先我们必须要了解主循环和全局变量,这样才知道在主循环中可以访问哪个全局变量。
下面就讲解下 WordPress 主循环,以便能更好理解哪些全局变量可以被主循环中的模板函数调用。
WordPress 主循环
WordPress 主循环(The Loop)是用来显示文章列表,和在单篇文章页面页显示留言列表的。
在主题的 index.php 中,主循环的代码如下:
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
- have_posts 这个函数去查看当前循环是否还有文章。
- the_post 函数获取第一篇文章,并设置文章的数据(如作者,是否多个分页等等),赋给 $post 这个全局变量,所以我们可以访问它。
- 随着循环的过程,循环查询到的文章都会被赋值到 $post 这个全局变量。
所以 the_post() 函数被调用之后,我们就可以使用许多模板函数和全局变量。
下面就是现在可用的部分模板函数:
- the_author:获取作者的名字。
- the_title:显示当前文章的标题。
- the_content:显示文章的内容。
- the_permalink:显示文章的链接。
- the_ID:显示文章的 ID。
全局变量
下面是在主循环中可用的全局变量:
$authordata
global $authordata;echo $authordata->display_name;
通过 $authordata 这个全局变量,我们可以获取当前文章作者的下面这些信息:last_name,first_name,ID,user_email,user_url,user_login,description 和其他。
$post
global $post;echo $post->post_content;
通过 $post 这个全局变量,我们可以获取文章的这些信息:ID,post_title, post_author,post_date,post_excerpt,comment_count 和其他。
注意通过这种方法获取的文章内容是没有经过 WordPress 过滤器接口的,不过你想自己去操纵文章的内容,比如自己设置文章内容的显示方式,通过这种方式获取的文章内容是非常有用。
$id
global $id;echo $id;
自定义模板函数
假设我们写了一个叫做 get_my_trackback 的自定义模板函数,在文章的留言循环中,如果留言是 trackback 的时候,就会做出一些处理。
我们可以把这个函数放入 comment.php 模板文件的 foreach 留言循环中。
<?php foreach ($comments as $comment) : ?><?php get_my_trackback();?><?php endforeach; /* end for each comment */ ?>
然后在当前主题的 function 文件中添加 get_my_trackback 函数代码:
function get_my_trackback() {
global $comment;
if(empty($comment)){
return;
}
if($comment->comment_type != 'comment'){
//do trackback stuff }}
$comment 这个全局变量能够让我们访问到当前留言的所有数据,所以可以让我们对留言做任何事情。
- 上一篇: js里面能写php吗 js能写app吗
- 下一篇: php 一步步实现mvc架构——view篇
猜你喜欢
- 2024-10-12 六种流行语言(C、C++、Python、JavaScript、PHP、Java)对比
- 2024-10-12 「讨论」php与Python之间有何区别?Python和php之间的简单比较
- 2024-10-12 PHP获取目录中的全部内容 php获取目录列表
- 2024-10-12 重蔚自留地php学习第三十天——php数组
- 2024-10-12 脚把脚教你消息队列,典型的应用场景到底有哪些?
- 2024-10-12 php-生成器(yield) php生成html
- 2024-10-12 PHP——数组根据某一键值合并 php 数组 合并
- 2024-10-12 php 一步步实现mvc架构——view篇
- 2024-10-12 PHP函数shuffle()取数组若干个随机元素的方法及实例分析
- 2024-10-12 js里面能写php吗 js能写app吗
- 最近发表
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)