我是WordPress开发的新手(在PHP开发中,我来自Java和C#) . 今天我安装了Aptana并配置了 XDebug 以检查 TwentyTwelve 主题中发生了什么 .
特别是我试图理解WordPress如何通过循环加载帖子(对其进行重新整理) .
所以,从现在开始,我只知道如何在WP主题中创建循环,但我不知道它是如何工作的 .
所以,在 TwentyTwelve 我找到了post循环,这个代码片段:
根据我的理解,循环由while循环组成,其中 have_posts() 结果是执行while主体的条件 .
好吧,现在可能以下问题与我在PHP中的无知有关,但究竟是什么意思构造:
<?php while ( have_posts() ) : the_post(); ?>
have_posts() 是在这段时间内执行的条件,但是什么是繁琐的意思 : the_post();
是 the_post() 调用循环的第一个操作还是什么?
然后我将一个breackpoint放入 have_posts() 函数中,该函数定义为 query.php 文件 .
function have_posts() {
global $wp_query;
return $wp_query->have_posts();
}
什么是 query.php 文件?是一类还是什么?看起来它的代码在我看来它不是一个类...为什么?
什么确切代表 $wp_query 变量?它是一个对象还是什么? (PHP没有输入,所以我怎么知道变量包含什么?)
这个操作意味着什么:
$wp_query->have_posts();
我认为它调用 have_posts() 函数的另一个版本(定义为 query.php 文件),检查是否存在其他要显示的帖子或是否已结束 .
但究竟如何工作?阅读PHP OO文档 - >运算符调用一个对象的方法,但我不知道 $wp_query 是否是一个对象,或者如果在这个竞争中 - >运算符有另一种意义......
你能帮我理解它究竟是如何工作的吗?
TNX
1 回答
要了解循环如何在wordpress中工作,你将不得不理解php中的一些基础知识
在函数
<?php while ( have_posts() ) : the_post(); ?>
之前,存在一个全局查询数组,其中包含wordpress post数组格式[0] [1] [2] [3]所以虽然发布帖子只是意味着,如果有帖子,那个元素被设置为POST
它将所有调用设置为中继到该单个数组中的内容http://codex.wordpress.org/Function_Reference/the_post
例如,当您调用
the_content()
时,您正在显示该帖子的索引,并且在那里有一个'content' => 'contents goes here'
长话短说,学习wordpress预定义语法以及循环如何在其文档站点上运行 .
位于这里http://codex.wordpress.org/Function_Reference/