提问者:小点点

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


我在WordPress开发方面是非常新的(还有PHP开发方面,我来自Java和C#)。今天,我安装了Aptana并配置了XDebug来检查TwentyTware主题中发生了什么。

特别是,我试图理解WordPress是如何通过循环加载帖子的。

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

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

根据我的理解,循环是由while循环组成的,其中have_posts()结果是执行while主体的条件。

好了,下面的问题很可能与我对PHP的无知有关,但是构造的具体含义是什么:

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

have_posts()是要在while中执行的条件,但它非常意味着:the_post();

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

然后,我将一个breackpoint放入定义到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是否是一个对象,或者在这个contes中,->运算符是否有另一种意义...

你能帮我弄清楚它到底是怎么工作的吗?

TNX


共1个答案

匿名用户

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

在函数<?php while(have_posts()):the_post()之前;?>存在wordpress post array格式的数组全局查询[0][1][2][3]

所以have post时post只是表示,如果有post的话,该元素被设置为post

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

例如,当您调用the_content()时,您将显示该文章的索引,并且在该索引中有一个“content”=>“contents goes here”

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

网址:http://codex.wordpress.org/function_reference/