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

时间:2014-08-05 19:58:01

标签: php wordpress wordpress-plugin content-management-system wordpress-theming

我是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中执行的条件,但是externly意味着:the_post();

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

然后我将一个breackpoint放入 has_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文档 - &gt;运算符调用对象的方法,但我不知道 $ wp_query 是否是一个对象,或者在此竞争中是否为 - &gt;操作员有另一种感觉......

你能帮助我理解它究竟是如何运作的吗?

TNX

1 个答案:

答案 0 :(得分:0)

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

函数<?php while ( have_posts() ) : the_post(); ?>之前的

有wordpress post数组格式的数组的全局查询[0] [1] [2] [3]

所以虽然发布帖子只是意味着,如果有帖子,那个元素设置为THE POST

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

例如,当您致电the_content()时,您正在显示该帖子的索引,并且在那里有一个'content' => 'contents goes here'

长话短说,学习wordpress预定义语法以及循环如何在其文档站点上运行。

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