Изменить количество сообщений на страницах тегов / терминов до 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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]