public static function get_posts_query(array $args = [], array $query_args = []) { global $paged; $args = array_merge(['orderby' => 'views', 'order' => 'desc', 'posts_per_page' => theme_cache::get_option('posts_per_page'), 'paged' => 1, 'category__in' => [], 'date' => 'all'], $args); $query_args = array_merge(['posts_per_page' => $args['posts_per_page'], 'paged' => $args['paged'], 'ignore_sticky_posts' => true, 'category__in' => $args['category__in'], 'post_status' => 'publish', 'post_type' => 'post', 'has_password' => false], $query_args); switch ($args['orderby']) { case 'views': $query_args['meta_key'] = 'views'; $query_args['orderby'] = 'meta_value_num'; break; case 'thumb-up': case 'thumb': $query_args['meta_key'] = 'post_thumb_count_up'; $query_args['orderby'] = 'meta_value_num'; break; case 'rand': case 'random': $query_args['orderby'] = 'rand'; break; case 'latest': $query_args['orderby'] = 'date'; break; case 'comment': $query_args['orderby'] = 'comment_count'; break; case 'recomm': case 'recommended': if (class_exists('theme_recommended_post')) { $query_args['post__in'] = (array) theme_recommended_post::get_ids(); } else { $query_args['post__in'] = (array) theme_cache::get_option('sticky_posts'); unset($query_args['ignore_sticky_posts']); } unset($query_args['post__not_in']); break; default: $query_args['orderby'] = 'date'; } if ($args['date'] && $args['date'] != 'all') { /** * date query */ switch ($date) { case 'daily': $after = 'day'; break; case 'weekly': $after = 'week'; break; case 'monthly': $after = 'month'; break; default: $after = 'day'; } $query_args['date_query'] = [['column' => 'post_date_gmt', 'after' => '1 ' . $after . ' ago']]; } return new WP_Query($query_args); }
/** * the_recommended */ public static function the_recommended() { if (!class_exists('theme_recommended_post') || !theme_recommended_post::is_enabled()) { return false; } $cache = theme_recommended_post::get_cache(); if (!empty($cache)) { echo $cache; unset($cache); return; } $recomms = theme_recommended_post::get_ids(); if (empty($recomms)) { ?> <div class="page-tip"><?php echo status_tip('info', ___('Please set some recommended posts to display.')); ?> </div> <?php return false; } global $post; $query = new WP_Query(['posts_per_page' => theme_recommended_post::get_item('number'), 'post__in' => $recomms, 'orderby' => 'ID', 'ignore_sticky_posts' => true]); ob_start(); if (have_posts()) { ?> <div class="home-recomm mod panel"> <div class="heading"> <h2 class="title"> <span class="bg"> <?php if (class_exists('theme_page_rank')) { ?> <a href="<?php echo theme_page_rank::get_tabs('recommend')['url']; ?> "> <?php } ?> <?php if (theme_recommended_post::get_item('icon')) { ?> <i class="fa fa-<?php echo theme_recommended_post::get_item('icon'); ?> "></i> <?php } ?> <?php echo theme_recommended_post::get_item('title'); ?> <?php if (class_exists('theme_page_rank')) { ?> </a> <?php } ?> </span> </h2> <?php if (class_exists('theme_page_rank')) { ?> <a href="<?php echo theme_page_rank::get_tabs('recommend')['url']; ?> " class="more"><?php echo ___('more »'); ?> </a> <?php } ?> </div> <div class="row"> <?php foreach ($query->posts as $post) { setup_postdata($post); self::archive_card_lg(['classes' => 'g-tablet-1-2 g-tablet-1-4', 'lazyload' => false]); } wp_reset_postdata(); ?> </div> </div> <?php } unset($query, $recomms); $cache = ob_get_contents(); ob_end_clean(); theme_recommended_post::set_cache($cache); echo $cache; unset($cache); }
public static function the_recommend_posts(array $args = []) { $cache = theme_cache::get('recommend', 'page-rank'); if (!empty($cache)) { echo $cache; return $cache; } global $post; $args = array_merge(['posts_per_page ' => 100, 'paged' => 1, 'orderby' => 'rand', 'post__in' => theme_recommended_post::get_ids(), 'ignore_sticky_posts' => false], $args); $query = new WP_Query($args); ob_start(); if ($query->have_posts()) { ?> <div class="list-group"> <?php $i = 1; foreach ($query->posts as $post) { setup_postdata($post); self::rank_img_content(['index' => $i, 'lazyload' => $i <= 5 ? false : true]); ++$i; } ?> </div> <?php wp_reset_postdata(); } else { } $cache = html_minify(ob_get_contents()); ob_end_clean(); theme_cache::set('recommend', $cache, 'page-rank', 3600); echo $cache; return $cache; }