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; }
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; }