Jetpack Infinite Scroll для результатов поиска
Jetpack имеет функцию бесконечной прокрутки, активированную по умолчанию для просмотра архива и блога. Однако он отключен для просмотра результатов поиска.
Обзор
Infinite Scroll включает в себя фильтр, указывающий, поддерживается он или нет, и мы можем использовать условное выражение для изменения возвращаемого значения. Фильтр есть infinite_scroll_archive_supportedи получает логическое значение, указывающее поддерживаемое состояние для текущего представления и параметры инициализации бесконечной прокрутки в качестве параметров.
Фильтрация поддержки текущего представления
Мы напишем условие, похожее на то, что найдено в фильтре, но добавим is_search, чтобы оно активировалось в представлении результатов поиска. Вы можете вставить следующее в файл functions.php вашей темы или аналогичный:
/**
* Enables Jetpack's Infinite Scroll in search pages, disables it in product archives
* @return bool
*/
function tr_theme_jetpack_infinite_scroll_supported() {
return current_theme_supports( 'infinite-scroll') && (is_home() || is_archive() || is_search() );
}
add_filter( 'infinite_scroll_archive_supported', 'tr_theme_jetpack_infinite_scroll_supported' );
Отключение бесконечной прокрутки в архивах пользовательских типов сообщений
Возможно, у вас есть определенный пользовательский архив типа записи, например продукты WooCommerce, и вы хотите отключить бесконечную прокрутку Jetpack для магазина продуктов и архивов WooCommerce. Это то, что вы использовали бы тогда:
/**
* Enables Jetpack's Infinite Scroll in search pages, disables it in product archives
* @return bool
*/
function tr_theme_jetpack_infinite_scroll_supported() {
return current_theme_supports( 'infinite-scroll') && (is_home() || is_archive() || is_search()) &&! is_post_type_archive( 'product' );
}
add_filter( 'infinite_scroll_archive_supported', 'tr_theme_jetpack_infinite_scroll_supported' );
Мы не используем такую функцию, is_woocommerceпотому что, если вы когда-нибудь отключите плагин WooCommerce, сайт станет пустым, поскольку is_woocommerceфункция больше не будет определена, и она выдаст фатальную ошибку.