Rolagem infinita do Jetpack para resultados de pesquisa
O Jetpack tem a funcionalidade de rolagem infinita ativada por padrão para visualizações de arquivo e blog. No entanto, está desativado para visualizações de resultados de pesquisa.
Visão geral
Infinite Scroll inclui um filtro para indicar se é suportado ou não, e podemos usar uma condicional para alterar o valor retornado. O filtro é infinite_scroll_archive_supportede recebe um booleano informando o estado suportado para a visualização atual e as configurações de inicialização de rolagem infinita como parâmetros.
Filtrando o suporte da visualização atual
Vamos escrever uma condição semelhante à encontrada no filtro, mas adicionando is_search para que ele acione uma visualização de resultados de pesquisa. Você pode colar o seguinte no arquivo functions.php do seu tema ou 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' );
Desativando a rolagem infinita em arquivos de tipo de postagem personalizados
Talvez você tenha um determinado arquivo de tipo de postagem personalizado, como produtos WooCommerce e queira desabilitar o Rolagem infinita do Jetpack para loja e arquivos de produtos WooCommerce. Isto é o que você usaria então:
/**
* 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' );
Não estamos usando uma função como is_woocommerceporque se você desativar o plugin WooCommerce, o site ficará em branco, pois a is_woocommercefunção não será mais definida e gerará um erro fatal.