Jetpack Infinite Scroll para resultados de búsqueda
Jetpack tiene la función de desplazamiento infinito activada de forma predeterminada para las vistas de archivos y blogs. Sin embargo, está desactivado para las vistas de resultados de búsqueda.
Visión general
Infinite Scroll incluye un filtro para indicar si es compatible o no, y podemos usar un condicional para alterar el valor devuelto. El filtro es infinite_scroll_archive_supportedy recibe un booleano que indica el estado admitido para la vista actual y la configuración de inicialización de desplazamiento infinito como parámetros.
Filtrado del soporte de vista actual
Escribiremos una condición similar a la que se encuentra en el filtro, pero agregaremos is_search para que se active en una vista de resultados de búsqueda. Puedes pegar lo siguiente en el archivo functions.php de tu tema o similar:
/**
* 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' );
Deshabilitar Infinite Scroll en archivos de tipo de publicación personalizados
Tal vez tenga un cierto tipo de archivo de publicación personalizado, como los productos de WooCommerce, y desee deshabilitar Infinite Scroll de Jetpack para la tienda y los archivos de productos de WooCommerce. Esto es lo que usarías entonces:
/**
* 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' );
No estamos usando una función como is_woocommerceporque si alguna vez deshabilita el complemento WooCommerce, el sitio se quedará en blanco ya que la is_woocommercefunción ya no estará definida y arrojará un error fatal.