Suporte » Plugins » Erro no Jetpack infinite scroll usando odin framework

  • Resolvido victorquete

    (@victorquete)


    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?

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    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

    Criador do tópico victorquete

    (@victorquete)

    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).

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    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

    Criador do tópico victorquete

    (@victorquete)

    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' ) );
        }
    }
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    @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

    Criador do tópico victorquete

    (@victorquete)

    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.

    Criador do tópico victorquete

    (@victorquete)

    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.
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    @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.

    Criador do tópico victorquete

    (@victorquete)

    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.

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    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.

    Criador do tópico victorquete

    (@victorquete)

    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ção

    try{
            /* 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..

    Criador do tópico victorquete

    (@victorquete)

    A ultima versão do plugin resolveu o problema citado.

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • O tópico ‘Erro no Jetpack infinite scroll usando odin framework’ está fechado para novas respostas.