Erro no Jetpack infinite scroll usando odin framework
-
Ola!!
Eu criei um custom post type e ele usa as categorias normais de post(não é uma custom taxonomy), porem na pagina da categoria o infinite scroll não carrega novos posts(http://www.setcenas.com.br/category/criticas_p/).
E na home também após alguns loads ele para de puxar os posts.Estou usando o infinite scroll da jetpack e o tema foi feito com framework Odin.
Alguem pode me dar uma força?
-
Olá @victorquete.
Os posts que estão vindo no infinite scroll são apenas os posts do core? Ou seja, ele está ignorando seu custom post type?
Abraços
Ola!
Não, ele não esta ignorando o meu custom post type, esta puxando ambos os tipos de post.
O problema é que quando o infinite scroll é ativado não puxa mais posts, pode ver no link que mandei e na home após oito as vezes 7 ativações ele para de puxar tb(era pra ativar 47-48 vezes na home).Entendi.
Parece ser um problema no Tema. Consegue checar se está tudo OK com a implementação da documentação? https://jetpack.com/support/infinite-scroll/
Poderia também copiar o código num pastebin e postar aqui pra gente?
Abraços
A implementação da documentação esta ok, mas eu percebi que se eu acesso na parte de criticas a paginação 3(que aparece quando chamo o odin_paging_nav), ele mostra pagina não encontrada…
Talvez seja a forma com que programei isso, na pagina category.php eu coloquei esse código no topo:
<?php /** * The template for displaying Category pages. * * @link http://codex.wordpress.org/Template_Hierarchy * * @package Odin * @since 2.2.0 */ get_header(); $args = array_merge( $wp_query->query, array( 'post_type' => 'any' ) ); query_posts( $args ); ?>
Ja a home não tem esse problema de pagina não encontrada, mas não carrega tudo de qualquer forma…
Enfim o código pra puxar o post e o custom post na home foi esse:
add_action( 'pre_get_posts', 'function_pre_post' ); function function_pre_post( $query ) { if ( ! is_admin() && $query->is_main_query() && $query->is_home() ) { $query->set( 'post_type', array( 'post', 'critica' ) ); } }
@victorquete você não pode usar query_posts.
Note a documentação:Note: This function will completely override the main query and isn’t intended for use by plugins or themes. Its overly-simplistic approach to modifying the main query can be problematic and should be avoided wherever possible.
Além disso, category.php já é um template de archive e por isso não precisa ter sua query modificada. Mas caso queira fazê-lo utilize o filtro pre_get_posts.
Abraços
Me desculpa isso passou batido Mario..
Bom na home eu utilizei na home o pre_get_post, e ta acontecendo a mesma coisa.Vou fazer algo relacionado ao filter infinite_scroll_query_args, para ver se ajuda.. bom se eu conseguir eu notifico hehe, se não pesquiso e faço mais testes.
Eu continuo usando apenas o pre_get_post para inserir na query dois post type:
add_action( 'pre_get_posts', 'function_pre_post' ); function function_pre_post( $query ) { if ( ! is_admin() && $query->is_main_query() && $query->is_home() ) { $query->set( 'post_type', array( 'post', 'critica' ) ); } }
E por causa disso o infinite scroll não chama todas as paginas, estou fazendo da forma errada?
- Esta resposta foi modificada 7 anos, 1 mês atrás por Allyson Souza.
@victorquete essa action está certa para o front (frente do site), mas como o Infinite Scroll é feito via ajax, talvez o
is_admin()
esteja impedindo que funcione.Testa sem o
is_admin()
.Se não funcionar vamos precisar dar uma olhada em como fazer essa action rodar quando estiver requisitando via Infinite Scroll.
Eu fiz o teste, continua agindo da mesma alterei o código para esse:
function function_pre_post( $query ) { if ( $query->is_main_query() && $query->is_home() ) { $query->set( 'post_type', array( 'post', 'critica' ) ); } }
Eu tb tentei usei o filter infinite_scroll_query_args para fazer isso,
function jetpack_infinite_scroll_query_args( $args ) { $args['post_type'] = array( 'post', 'critica' ); return $args; } add_filter( 'infinite_scroll_query_args', 'jetpack_infinite_scroll_query_args' );
mas também agiu da mesma maneira.
Vou fuçar mais na documentação, talvez encontre algo.. enviei um email para o suporte da Jetpack tb.
Ali no infinite_scroll_query_args tenta uma prioridade maior:
add_filter( 'infinite_scroll_query_args', 'jetpack_infinite_scroll_query_args', 100 );
Dei uma procurada por esse filtro e encontrei essa issue aqui.
Eu tentei com uma prioridade maior, não deu certo.
Eu dei uma lida na issue, nada me veio na cabeça,
Eu tentei colocar esse código de paginaçãotry{ /* Get the start page, if the request is from 1st page, it will be 0, and then no need to do decrement. */ $startPage = intval($_POST['query_args']['paged']); if($startPage != 0) $startPage--; /* Adding $args is to avoid the people making infinite scrolling request in non 1st page */ $currentPage = ($args['paged'] + $startPage); }catch(Exception $x){ /* If error exists, I just use back the paged argument */ $currentPage = $args['paged']; } /* Using offset is used to override the paged args which will be used in WP_Query */ $args['offset'] = $args['posts_per_page'] * $currentPage;
mas não funcionou.
Estou bem perdido com esse problema..A ultima versão do plugin resolveu o problema citado.
- O tópico ‘Erro no Jetpack infinite scroll usando odin framework’ está fechado para novas respostas.