关于WordPress循环如何深度工作的一些疑问(试图调试它)


Some doubts about how WordPress loop deeply work (trying to debug it)

我是WordPress开发的新手(也是PHP开发的新手,我来自Java和c#)。今天我已经安装了Aptana并配置了XDebug来检查TwentyTwelve主题发生了什么。

特别是我试图理解WordPress如何通过循环加载帖子(调试它)。

所以,从现在起,我只知道如何在WP主题中创建循环,但我不知道它到底是如何工作的。

因此,在TwentyTwelve中,我找到了post循环,这段代码片段:

从我可以理解的循环是由一个while循环,其中have_posts()结果是执行while体的条件。

好了,下面的问题可能与我对PHP的无知有关但是这个结构到底是什么意思:

<?php while ( have_posts() ) : the_post(); ?>

have_posts()是while中执行的条件,但是的确切含义是:the_post();

the_post()调用循环的第一个操作还是什么?

query.php文件中定义了have_posts()函数。
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

要理解循环在wordpress中的工作原理,你必须了解php的一些基础知识

函数<?php while ( have_posts() ) : the_post(); ?>有一个全局查询数组的格式为[0][1][2][3]

所以当有post时,post的意思是,如果有post,该元素被设置为the post

将所有调用设置为中继到单个数组中的内容http://codex.wordpress.org/Function_Reference/the_post

例如

当你调用the_content()时你显示的是那个帖子的索引在里面有一个'content' => 'contents goes here'

长话短说,在他们的文档站点学习wordpress预定义的语法和循环是如何工作的。

位于此处http://codex.wordpress.org/Function_Reference/