コード例 #1
0
ファイル: loop.php プロジェクト: supahseppe/path-of-gaming
 public static function the_loop_shortcode($parameters = array(), $template)
 {
     self::init_loop();
     // Store original parameters
     self::$original_parameters = $parameters;
     // Merge parameters with defaults
     $parameters = self::merge_with_defaults($parameters);
     // Store merged parameters
     self::$state['parameters'] = $parameters;
     // Check cache - if loaded, return result
     if (($result = self::check_cache($parameters)) !== false) {
         self::close_loop();
         return $result;
     }
     // If there's already result based on parameters, return it
     $result = self::before_query($parameters, $template);
     // Catch empty string too
     if ($result !== null) {
         self::close_loop();
         return $result;
     }
     // Set up query based on parameters
     $query = self::prepare_query($parameters);
     if (!empty($query)) {
         if (!empty($parameters['the_posts'])) {
             // Inside [loop exists] and [the-loop]
             $query_result = $parameters['the_posts'];
         } else {
             // Get query result
             $query_result = self::run_query($query);
             // [loop exists]
             if (is_array(self::$original_parameters) && in_array('exists', self::$original_parameters)) {
                 // Posts can be filtered out by prepare_all_posts
                 $check_posts = self::prepare_all_posts($query_result);
                 $post_exists = false;
                 foreach ($check_posts->posts as $check_post) {
                     if (in_array($check_post->ID, self::$state['all_ids'])) {
                         $post_exists = true;
                         break;
                     }
                 }
                 if (!$post_exists) {
                     return;
                 }
                 self::$original_parameters['the_posts'] = $query_result;
                 return do_ccs_shortcode($template);
             }
         }
         // Process posts
         $posts = self::prepare_posts($query_result);
         // Loop through each post and compile shortcode template
         $results = self::compile_templates($posts, $template);
         // Combine results and process to final output
         $result = self::process_results($results);
     } else {
         $result = self::handle_empty_query($template);
     }
     self::close_loop();
     return $result;
 }
コード例 #2
0
ファイル: loop.php プロジェクト: surreal8/wptheme
 public static function the_loop_shortcode($parameters, $template)
 {
     self::init_loop();
     // Store original parameters
     self::$original_parameters = $parameters;
     // Merge parameters with defaults
     $parameters = self::merge_with_defaults($parameters);
     // Store merged parameters
     self::$state['parameters'] = $parameters;
     // Check cache - if loaded, return result
     if (($result = self::check_cache($parameters)) !== false) {
         self::close_loop();
         return $result;
     }
     // If there's already result based on parameters, return it
     $result = self::before_query($parameters, $template);
     if ($result !== null) {
         self::close_loop();
         return $result;
     }
     // Set up query based on parameters
     $query = self::prepare_query($parameters);
     if (!empty($query)) {
         // Get posts from query
         $posts = self::run_query($query);
         // Process posts
         $posts = self::prepare_posts($posts);
         // Loop through each post and compile shortcode template
         $results = self::compile_templates($posts, $template);
         // Combine results and process to final output
         $result = self::process_results($results);
     } else {
         // Query is empty
         $results = self::compile_templates(null, $template, false);
         $result = self::process_results($results);
     }
     self::close_loop();
     return $result;
 }