OSDN Git Service

WordPressテンプレート機能更新。
authornaoki hirata <naoki@magic3.org>
Mon, 14 Aug 2017 06:26:36 +0000 (15:26 +0900)
committernaoki hirata <naoki@magic3.org>
Mon, 14 Aug 2017 06:26:36 +0000 (15:26 +0900)
include/wp/wp-includes/class-wp-query.php
include/wp/wp-includes/class-wp.php
include/wp/wp-includes/functions.php

index 69fc564..f622479 100644 (file)
@@ -1674,7 +1674,7 @@ class WP_Query {
                global $gRequestManager;
                global $gPageManager;
                global $paged;
-                                       
+
                // ##### URLパラメータを解析 #####
                $this->query_vars = array();
                // ページ番号
@@ -2065,8 +2065,8 @@ class WP_Query {
         * @param string $query URL query string.
         * @return array List of posts.
         */
-       public function query( $query ) {
-               // このメソッドはリクエストに対し1回だけ実行
+       public function query($query = '') {
+               // ##### テンプレート起動前にwp()から$queryなしでグローバルで一度実行される。その後、テンプレート内で$query付きで任意に生成、実行される。#####
 //             $this->init();
 //             $this->query = $this->query_vars = wp_parse_args( $query );
                return $this->get_posts();
@@ -2177,10 +2177,10 @@ class WP_Query {
         * @param string|array $query URL query string or array of vars.
         */
        public function __construct( $query = '' ) {
-               // $queryが空のパターンはquery()を呼び出して実行
-//             if ( ! empty( $query ) ) {
-//                     $this->query( $query );
-//             }
+               // ##### テンプレート起動前にwp()から$queryなしでグローバルで一度実行される。その後、テンプレート内で$query付きで任意に生成、実行される。#####
+               if ( ! empty( $query ) ) {
+                       $this->query( $query );
+               }
        }
 
        /**
index bfcbc4e..ac8fa35 100644 (file)
@@ -617,7 +617,8 @@ class WP {
        public function query_posts() {
                global $wp_the_query;
 //             $this->build_query_string();
-               $wp_the_query->query($this->query_vars);
+//             $wp_the_query->query($this->query_vars);
+               $wp_the_query->query();                                         // テンプレート起動前にwp()から一度だけ実行
        }
 
        /**
index 9705e65..7668bd6 100644 (file)
@@ -951,9 +951,12 @@ function wp_remote_fopen( $uri ) {
  * @param string|array $query_vars Default WP_Query arguments.
  */
 function wp( $query_vars = '' ) {
-       global $wp, $wp_query, $wp_the_query;
-       $wp->main( $query_vars );
+       global $wp;
+       $wp->main();
 
+//     global $wp, $wp_query, $wp_the_query;
+//     $wp->main( $query_vars );
+//
 //     if ( !isset($wp_the_query) )
 //             $wp_the_query = $wp_query;
 }