/** * Get posts * * @param array $params * * @return array */ public static function getPosts($params = array()) { $params = is_array($params) ? $params : array(); $params['post_type'] = meAnjanWqg_Utils::arrayValueAsArray($params, 'post_type', array('post')); $params['order'] = meAnjanWqg_Utils::arrayValueAsString($params, 'order', 'asc', 'trim'); $params['orderby'] = meAnjanWqg_Utils::arrayValueAsString($params, 'orderby', 'title', 'trim'); $params['nopaging'] = meAnjanWqg_Utils::arrayValue($params, 'nopaging', TRUE); $params['post_parent'] = meAnjanWqg_Utils::arrayValueAsInt($params, 'post_parent', 0); $q = new WP_Query($params); $posts = $q->get_posts(); $q->reset_postdata(); return $posts; }
/** * Generates taxonomy related code and arguments * * @param $start_indent * * @return string */ public function generateTaxonomyArgCode($start_indent) { /** @var wpdb $wpdb */ global $wpdb; $start_indent = (int) $start_indent; if ($start_indent < 0) { $start_indent = 0; } $data = meAnjanWqg_Utils::arrayValue($this->_data, 'tax'); $code = array(); if (is_array($data) && count($data) > 0) { /** * Taxonomy Data */ $relation = meAnjanWqg_Utils::arrayValue($data, 'relation', 'AND'); $rules = meAnjanWqg_Utils::arrayValueAsArray($data, 'rules', array()); $non_empty_rules_count = 0; if (is_array($rules) && count($rules) > 0) { foreach ($rules as $r) { $term = meAnjanWqg_Utils::arrayValueAsArray($r, 'term', array()); if (!empty($term)) { $non_empty_rules_count += 1; } } } if (count($rules) > 0) { $this->_args['tax_query'] = array(); $code[] = meAnjanWqg_Utils::_l($start_indent, "'tax_query' => array(", 1); // relation if ($non_empty_rules_count > 1) { $relationEsc = $wpdb->_escape($relation); $code[] = meAnjanWqg_Utils::_l($start_indent + 1, "'relation' => '{$relationEsc}',", 1); $this->_args['tax_query']['relation'] = $relation; } // rules if (count($rules) > 0) { foreach ($rules as $r) { $name = meAnjanWqg_Utils::arrayValueAsString($r, 'name', '', 'trim'); $field = meAnjanWqg_Utils::arrayValueAsString($r, 'field', '', 'trim'); $operator = meAnjanWqg_Utils::arrayValueAsString($r, 'operator', '', 'trim'); $term = meAnjanWqg_Utils::arrayValueAsArray($r, 'term', array()); $include_children = meAnjanWqg_Utils::arrayValueAsInt($r, 'include_children', 0); if (empty($term)) { continue; } $nameEsc = $wpdb->_escape($name); $fieldEsc = $wpdb->_escape($field); $operatorEsc = $wpdb->_escape($operator); $termEsc = array_map(array($wpdb, '_escape'), $term); $code[] = meAnjanWqg_Utils::_l($start_indent + 1, "array(", 1); $code[] = meAnjanWqg_Utils::_l($start_indent + 2, "'taxonomy' => '{$nameEsc}',", 1); $code[] = meAnjanWqg_Utils::_l($start_indent + 2, "'field' => '{$fieldEsc}',", 1); $code[] = meAnjanWqg_Utils::_l($start_indent + 2, "'terms' => array(", 1); foreach ($termEsc as $t) { $t = trim($t); $code[] = meAnjanWqg_Utils::_l($start_indent + 3, "'{$t}'", 1); } $code[] = meAnjanWqg_Utils::_l($start_indent + 2, "),", 1); $code[] = meAnjanWqg_Utils::_l($start_indent + 2, "'operator' => '{$operatorEsc}',", 1); $code[] = meAnjanWqg_Utils::_l($start_indent + 2, "'include_children' => " . ($include_children > 0 ? 'true' : 'false') . ",", 1); $code[] = meAnjanWqg_Utils::_l($start_indent + 1, "),", 1); $this->_args['tax_query'][] = array('taxonomy' => $name, 'field' => $field, 'terms' => $term, 'operator' => $operator, 'include_children' => $include_children > 0); } } $code[] = meAnjanWqg_Utils::_l($start_indent, "),", 1); } } if (!empty($code)) { $content = PHP_EOL; $content .= meAnjanWqg_Utils::_l($start_indent, "/* Taxonomy params */", 2); $content .= join('', $code); return $content; } return join('', $code); }
<label> <strong>Posts Per Archive Page (#posts_per_archive_page)</strong>Number of posts per archive/search page<br/> <input type="text" name="pagination[posts_per_archive_page]" value="<?php echo meAnjanWqg_Utils::arrayValue($wqgData, 'pagination/posts_per_archive_page'); ?> " /> </label> </td> </tr> <tr> <td> <label> <?php $ignore_sticky_posts = meAnjanWqg_Utils::arrayValueAsInt($wqgData, 'pagination/ignore_sticky_posts', 0) > 0; ?> <input type="hidden" name="pagination[ignore_sticky_posts]" value="0" /> <input type="checkbox" name="pagination[ignore_sticky_posts]" value="1" <?php if ($ignore_sticky_posts) { ?> checked<?php } ?> /> Ignore Sticky Posts </label> </td> </tr> </tbody>