Rolagem infinita do Jetpack para várias colunas na mesma página?

4

Ativar a rolagem infinita é tão simples quanto adicionar este snippet ao arquivo functions.php do tema (em que 'content' é o id do contêiner que agrupa as postagens):

add_theme_support( 'infinite-scroll', array(
    'type' => 'scroll',
    'container' => 'content',
    'footer' => false,
) );

Mas o que devo fazer se meu site tiver um layout de várias colunas em que, por exemplo, uma coluna mostre as postagens mais recentes e a outra coluna liste as postagens mais recentes de uma tag (destaques)? ou seja, essencialmente existem dois recipientes.

Eu tentei esses dois trechos (veja abaixo) e, de qualquer forma, a rolagem infinita só está habilitada para uma coluna / contêiner.

add_theme_support( 'infinite-scroll', array(
    'type' => 'scroll',
    'container' => 'content',
    'footer' => false,
) );

add_theme_support( 'infinite-scroll', array(
    'type' => 'scroll',
    'container' => 'highlights',
    'footer' => false,
) );

e

add_theme_support( 'infinite-scroll', array(
    'type' => 'click',
    'container' => array( 'content', 'highlights' ),
    'footer' => false,
) );

O que estou fazendo de errado?

OBSERVAÇÃO: Se o fato de instalar o Jetpack exigir uma conta do wordpress.com estiver atrapalhando, tente Slim Jetpack . Ele até funciona em uma instalação local do WP e não requer uma conta no wp.com.

    
por its_me 05.02.2013 / 06:37

2 respostas

0

Em uma resposta por e-mail, Kris Karkoski, Engenheiro de Felicidade (WordPress.com) da Automattic me disse, "Rolagem Infinita com várias colunas não é suportada no Jetpack neste momento."

    
por its_me 13.02.2013 / 15:30
2

Eu verifiquei o código-fonte do Slim Jetpack e essa tarefa não pode ser realizada sem reescrever esse plug-in.

Aqui estão algumas dicas:

  1. Você terá que duplicar a linha 539 de '/modules/infinity-scroll/infinity.php' informando:

    jQuery.extend( infiniteScroll.settings.scripts, <?php echo json_encode( $scripts ); ?> );
    
  2. Você terá que duplicar a linha 475 de '/modules/infinity-scroll/infinity.js', pois isso inicializa a rolagem infinita. (Você vê a correspondência do nome da variável?)

    infiniteScroll.scroller = new Scroller( infiniteScroll.settings );
    
  3. Além do mais, você terá que ajustar o módulo para aceitar mais atributos, ou pelo menos post_type attribute para poder determinar o que post_type deve trazer para cada loop de inifinite - isso deve ser feito em ambos JS e PHP (retorno de chamada para a função ajax).

Como eu disse, o plugin teria que ser reescrito.

    
por david.binda 08.02.2013 / 12:15