首页 文章

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

提问于
浏览
0

我是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 回答

  • 0

    要了解循环如何在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/

相关问题