繁体   English   中英

wordpress,为什么要返回$ this-> get_posts(); 返回值?

[英]wordpress, why return $this->get_posts(); returns values?

我试图找出wordpress如何处理每个请求并返回结果。 我发现wp()函数调用$wp->main() ,后者又调用$this->query_posts(); 并在query.php文件中调用$wp_the_query->query($this->query_vars)函数。 query()函数调用return $this->get_posts(); 并返回结果。

我的问题是没有看到任何变量接收到这个返回值,所以为什么这个函数返回,即使wordpress工作,如果我从代码中删除返回。 那么这个回报的目的是什么,(我想这段代码将内容(帖子)保存到$this->posts变量)。 顺便说一下我用的是wp 3.6

我相信这个答案可能会提供你想要的东西:

https://wordpress.stackexchange.com/a/1755

特别是这张图片(我没有自己制作):

WP查询

返回的使用与php (也用于其他语言)有关,不仅仅是WordPress 当执行到达return statement ,该函数将停止并返回该值,而不再处理该函数。 return ,没有值返回null,如果没有return ,在一个函数结束关键字,然后,在此情况下,一个null得到返回的值。

在方法/函数末尾使用return语句是一种很好的编码实践,它只是将执行控制返回到它开始的位置,它还防止PHP包含文件中的代码注入 另外, 检查一下

简答:还有其他功能使用返回值,主要是在主题和插件中,但也在WP核心中。 示例如下。

答案很长:

在wordpress中,WP_Query :: query()方法用于从数据库中获取帖子。 这是通过提供某些选择标准来完成的,即:query_vars。 根据这些帖子检索并提供这些帖子。

现在,在您提到的情况下,重要的是调用堆栈,即用于调用函数的路径。 即:

 wp() ---> 
           [WP->main()]-->
                       WP->query_posts()          {here the query is
                                                   called on the global 
                                                    wp_query Object} 
                            -->WP_Query->query() 

在WP-> main()中,调用parse_request方法,它从REQUEST_URI创建query_vars。 所以fect的任何帖子取决于请求的页面URL。 即选择标准由请求页面的URL提供。 并且由于在全局wp_query对象上调用查询方法,因此无需返回它。 这形成了主要路径,即:全局wp查询和请求uri查询变量。

但在情况下,如主题,插件,当你需要获取额外的帖子。 您将创建一个新的wp查询对象,并使用查询方法。 例如:通过'john'获取所有帖子。 在这些情况下,使用查询方法返回的值。

    $wpquery = new Wp_query();
    posts = $wpquery->query("author_name=john");

一些使用它的函数:

wp_nav_menu_item_post_type_meta_box /wp-admin/includes/nav-menu.php 
wp_link_query /wp-includes/class-wp-editor.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM