Пример #1
0
 function themerex_posts_per_page_selector($query)
 {
     if (is_admin() || !$query->is_main_query()) {
         return;
     }
     $orderby_set = true;
     $orderby = get_theme_option('blog_sort');
     $order = get_theme_option('blog_order');
     // Set posts per page
     $ppp = (int) get_theme_option('posts_per_page');
     $ppp2 = 0;
     if ($query->is_category()) {
         $cat = (int) $query->get('cat');
         if (empty($cat)) {
             $cat = $query->get('category_name');
         }
         if (!empty($cat)) {
             //$ppp2 = (int) getCategoryInheritedProperty($cat, 'posts_per_page', 0);
             $cat_options = getCategoryInheritedProperties($cat);
             if (isset($cat_options['posts_per_page']) && !empty($cat_options['posts_per_page']) && $cat_options['posts_per_page'] != 'default') {
                 $ppp2 = (int) $cat_options['posts_per_page'];
             }
             if (isset($cat_options['blog_sort']) && !empty($cat_options['blog_sort']) && $cat_options['blog_sort'] != 'default') {
                 $orderby = $cat_options['blog_sort'];
             }
             if (isset($cat_options['blog_order']) && !empty($cat_options['blog_order']) && $cat_options['blog_order'] != 'default') {
                 $order = $cat_options['blog_order'];
             }
         }
     } else {
         if ($query->get('post_type') == 'product' || $query->get('product_cat') != '' || $query->get('product_tag') != '') {
             $orderby_set = false;
             $page_id = get_option('woocommerce_shop_page_id');
         } else {
             if ($query->is_archive()) {
                 $page_id = getTemplatePageId('archive');
             } else {
                 if ($query->is_search()) {
                     $page_id = getTemplatePageId('search');
                 } else {
                     if ($query->is_posts_page == 1) {
                         $page_id = isset($query->queried_object_id) ? $query->queried_object_id : getTemplatePageId('template-blog');
                     } else {
                         $page_id = 0;
                     }
                 }
             }
         }
         if ($page_id > 0) {
             $post_options = get_post_meta($page_id, 'post_custom_options', true);
             if (isset($post_options['posts_per_page']) && !empty($post_options['posts_per_page']) && $post_options['posts_per_page'] != 'default') {
                 $ppp2 = (int) $post_options['posts_per_page'];
             }
             if ($orderby_set) {
                 if (isset($post_options['blog_sort']) && !empty($post_options['blog_sort']) && $post_options['blog_sort'] != 'default') {
                     $orderby = $post_options['blog_sort'];
                 }
                 if (isset($post_options['blog_order']) && !empty($post_options['blog_order']) && $post_options['blog_order'] != 'default') {
                     $order = $post_options['blog_order'];
                 }
             }
         }
     }
     if ($ppp2 > 0) {
         $ppp = $ppp2;
     }
     if ($ppp > 0) {
         $query->set('posts_per_page', $ppp);
     }
     if ($orderby_set) {
         addSortOrderInQuery($query, $orderby, $order);
     }
     // Exclude categories
     $ex = get_theme_option('exclude_cats');
     if (!empty($ex)) {
         $query->set('category__not_in', explode(',', $ex));
     }
 }
Пример #2
0
global $THEMEREX_ajax_nonce, $THEMEREX_ajax_url;
$THEMEREX_ajax_nonce = wp_create_nonce('ajax_nonce');
$THEMEREX_ajax_url = admin_url('admin-ajax.php');
// Theme custom settings from current post and category
global $THEMEREX_cat_options, $THEMEREX_post_options, $THEMEREX_custom_options, $THEMEREX_shop_options, $wp_query;
// Current post & category custom options
$THEMEREX_post_options = $THEMEREX_cat_options = $THEMEREX_custom_options = $THEMEREX_shop_options = array();
if (is_woocommerce_page() && ($page_id = get_option('woocommerce_shop_page_id')) > 0) {
    $THEMEREX_shop_options = get_post_meta($page_id, 'post_custom_options', true);
}
if (is_category()) {
    $cat = (int) get_query_var('cat');
    if (empty($cat)) {
        $cat = get_query_var('category_name');
    }
    $THEMEREX_cat_options = getCategoryInheritedProperties($cat);
} else {
    if ((is_day() || is_month() || is_year()) && ($page_id = getTemplatePageId('archive')) > 0) {
        $THEMEREX_post_options = get_post_meta($page_id, 'post_custom_options', true);
    } else {
        if (is_search() && ($page_id = getTemplatePageId('search')) > 0) {
            $THEMEREX_post_options = get_post_meta($page_id, 'post_custom_options', true);
        } else {
            if (is_404() && ($page_id = getTemplatePageId('404')) > 0) {
                $THEMEREX_post_options = get_post_meta($page_id, 'post_custom_options', true);
            } else {
                if (function_exists('is_bbpress') && is_bbpress() && ($page_id = getTemplatePageId('bbpress')) > 0) {
                    $THEMEREX_post_options = get_post_meta($page_id, 'post_custom_options', true);
                } else {
                    if (function_exists('is_buddypress') && is_buddypress() && ($page_id = getTemplatePageId('buddypress')) > 0) {
                        $THEMEREX_post_options = get_post_meta($page_id, 'post_custom_options', true);
Пример #3
0
function getCategoriesInheritedProperties($cats)
{
    $cat_options = array();
    if ($cats) {
        foreach ($cats as $cat) {
            $new_options = getCategoryInheritedProperties($cat['term_id']);
            foreach ($new_options as $k => $v) {
                if (!empty($v) && $v != 'default' && (!isset($cat_options[$k]) || empty($cat_options[$k]) || $cat_options[$k] == 'default')) {
                    $cat_options[$k] = $v;
                }
            }
        }
    }
    return $cat_options;
}