post_limits
Змінює LIMIT частину SQL запит перед тим, як отримати пости з бази даних за допомогою WP_Query.
Хук дозволяє визначити потрібне нам обмеження LIMIT у запиті при отриманні постів.
При внесенні змін до post_limits не забувайте про пагінацію.
Щоб видалити частину запиту LIMIT, поверніть у фільтр NULL. У цьому випадку запит поверне усі отримані результати без обмежень. Однак у цьому випадку параметр $wp_query->found_postsдорівнюватиме 0.
Використання
add_filter( 'post_limits', 'filter_function_name_11');
function filter_function_name_11( $limit ) {
// Обробляємо передані дані...
return $limit;
}
Параметри
- $limit
(рядок) - Рядок, частина SQL запиту. Наприклад:
LIMIT 0, 25.
Приклади
#1 Кількість записів, що виводяться в результатах пошуку
Демонстраційний приклад, що показує як можна змінити кількість записів, що виводяться на сторінці пошуку по сайту. Тут встановлюється 25 результатів:
function my_post_limits( $limit ) {
if ( is_search() ) {
return 'LIMIT 0, 25';
}
return $limit;
}
add_filter( 'post_limits', 'my_post_limits');Це демонстраційний приклад не для використання. Тому що такий код вимкне пагінацію, тому що для сторінок пошуку завжди повертатиметься “LIMIT 0, 25”. Щоб змінити кількість записів і не зламати пагінацію, краще встановити параметр posts_per_pageчерез хук-действие pre_get_posts .
#2 Змінимо кількість постів, що виводяться в RSS-стрічці
Зазвичай кількість постів, що виводяться у фіді, можна змінити в налаштуваннях. Але в деяких випадках такий варіант може не влаштовувати, тоді використовуйте такий код:
function how_many_posts_display_in_feed($query) {
if( ! is_feed() )
return;
return 'LIMIT 25';
}
add_filter( 'post_limits', 'how_many_posts_display_in_feed');
список змін
| З версії 2.1.0 | Введено. |
Де викликається хук
$limits = apply_filters_ref_array( 'post_limits', array( $limits, &$this ) );
Де використовується хук у WordPress
Використання не знайдено.