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