예제 #1
0
파일: loop.php 프로젝트: surreal8/wptheme
 public static function before_query($parameters, $template = null)
 {
     $result = apply_filters('ccs_loop_before_query', null, $parameters, $template);
     if (!empty($result) || $result === false) {
         return $result;
     }
     /*---------------------------------------------
      *
      * Start timer
      *
      */
     if ($parameters['timer'] == 'true') {
         CCS_Cache::start_timer();
     }
     /*---------------------------------------------
      *
      * The X parameter - run loop X times, no query
      *
      */
     if (!empty($parameters['x'])) {
         $outs = array();
         $x = $parameters['x'];
         for ($i = 0; $i < $x; $i++) {
             self::$state['loop_count']++;
             $outs[] = apply_filters('ccs_loop_each_result', do_ccs_shortcode(self::render_field_tags($template, $parameters)), $parameters);
         }
         if (!empty($parameters['columns'])) {
             $out = self::render_columns($outs, $parameters['columns'], $parameters['pad'], $parameters['between']);
         } else {
             $out = implode('', $outs);
         }
         return apply_filters('ccs_loop_final_result', $out, $parameters);
     }
     /*---------------------------------------------
      *
      * Switch to blog on multisite - restore during close_loop()
      *
      */
     if (!empty($parameters['blog'])) {
         $result = switch_to_blog($parameters['blog']);
         if ($result) {
             self::$state['blog'] = $parameters['blog'];
         }
     }
     return null;
 }
예제 #2
0
 public static function before_query(&$parameters, $template = null)
 {
     $result = apply_filters('ccs_loop_before_query', null, $parameters, $template);
     if (!empty($result) || $result === false) {
         return $result;
     }
     /*---------------------------------------------
      *
      * Start timer
      *
      */
     if ($parameters['timer'] == 'true') {
         CCS_Cache::start_timer();
     }
     /*---------------------------------------------
      *
      * The X parameter - run loop X times, no query
      *
      */
     if (!empty($parameters['x'])) {
         $outs = array();
         $x = $parameters['x'];
         for ($i = 0; $i < $x; $i++) {
             self::$state['loop_count']++;
             $outs[] = apply_filters('ccs_loop_each_result', do_ccs_shortcode(self::render_field_tags($template, $parameters)), $parameters);
         }
         if (!empty($parameters['columns'])) {
             $out = self::render_columns($outs, $parameters['columns'], $parameters['pad'], $parameters['between']);
         } else {
             $out = implode('', $outs);
         }
         return apply_filters('ccs_loop_final_result', $out, $parameters);
     }
     /*---------------------------------------------
      *
      * Switch to blog on multisite - restore during close_loop()
      *
      */
     if (!empty($parameters['blog'])) {
         $result = switch_to_blog($parameters['blog']);
         if ($result) {
             self::$state['blog'] = $parameters['blog'];
         }
     }
     /*---------------------------------------------
      *
      * Child parameter
      *
      * child=this - loop through current post's parents from the top
      *
      */
     if (!empty($parameters['child'])) {
         $current_id = do_shortcode('[field id]');
         $parent_ids = array();
         // Include current post
         if (!empty($parameters['include']) && $parameters['include'] == 'this') {
             $parent_ids[] = $current_id;
             unset($parameters['include']);
         }
         $index = 1;
         $max = !empty($parameters['count']) ? $parameters['count'] : 999;
         // Get all parents one by one
         while ($index <= $max && ($pid = wp_get_post_parent_id($current_id))) {
             $parent_ids[] = $current_id = $pid;
             $index++;
         }
         if (empty($parent_ids)) {
             return self::handle_empty_query($template);
         }
         // Start from top parent by default
         if (empty($parameters['reverse'])) {
             $parent_ids = array_reverse($parent_ids);
         }
         $parameters['id'] = implode(',', $parent_ids);
         unset($parameters['child']);
     }
     // Continue to query
     return null;
 }