2017-02-04 12 views
0

Я изменил страницу результатов поиска с функцией изменения количества результатов поиска до 10. Как я могу сделать то же самое, но для страниц тегов/терминов?Изменить количество сообщений на страницах тегов/терминов на 10

function change_wp_search_size($query) { 
    if ($query->is_search) // Make sure it is a search page 
     $query->query_vars['posts_per_page'] = 10; // Change 10 to the number of posts you would like to show 
    return $query; // Return our modified query variables 
} 

add_filter('pre_get_posts', 'change_wp_search_size'); // Hook our custom function onto the request filter 

Найденный и попробовал этот код и оно не работает

function main_query_mods($query) { 
    // check http://codex.wordpress.org/Conditional_Tags to play with other queries 
    if (!$query->is_main_query()) { 
     return; 
    } 
    if (is_tag()) { 
     $query->set('posts_per_page', 10); 
    } 
} 

add_action('pre_get_posts', 'main_query_mods'); 

ответ

0

Проблема с вашим is_tag(); вы должны это сделать так: $query->is_tag().

function main_query_mods($query) { 
    if ($query->is_tag() && $query->is_main_query() && !is_admin()) { 
     $query->set('posts_per_page', 10); 
    } 
} 

add_action('pre_get_posts', 'main_query_mods'); 


ОБНОВЛЕНО

Если вы хотите ограничить пост на 10 на обоих tag и search странице, то вы должны использовать is_tag() и is_search() вместе в вашем if заявлении.

function wh_tag_search_postCount($query) { 
    if (($query->is_tag() || $query->is_search()) && $query->is_main_query() && !is_admin()) { 
     $query->set('posts_per_page', 10); 
    } 
} 

add_action('pre_get_posts', 'wh_tag_search_postCount'); 


ОБНОВЛЕНО v3

Если вы хотите исключить магазин страницу, то вы можете использовать is_shop() и is_product_category() для категории продукта архивной страницы.

function wh_tag_search_postCount($query) { 
    //if WooCommerce is active 
    if (class_exists('WooCommerce')) { 
     //if current page is a shop page or product category page then dont do any thing 
     if (is_shop() || is_product_category()) 
      return; 
    } 
    if (($query->is_tag() || $query->is_search()) && $query->is_main_query() && !is_admin()) { 
     $query->set('posts_per_page', 10); 
    } 
} 

add_action('pre_get_posts', 'wh_tag_search_postCount'); 

Весь код проверен и работает.
Надеюсь, это поможет!

+0

Я пробовал это и с моим поисковым кодом, когда добавляю эту новую функцию, ни число сообщений не равно 10. – EmilyG

+0

@EmilyG: Я обновил свой ответ. 'wh_tag_search_postCount()' будет работать для обоих ваших сообщений. –

+0

Поиск показывает 10 сообщений правильно, но на странице тега показывается только 5 сообщений. [link] (https://www.baby-chick.com/tag/pregnancy/) – EmilyG

 Смежные вопросы

  • Нет связанных вопросов^_^