Página de archivo personalizado de Wordpress

2

Estoy intentando crear una página de archivo personalizada. Sin embargo, me gustaría que esta página de archivo se salte las primeras 5 publicaciones.

He podido lograr esto con la propiedad de compensación. Sin embargo, la paginación parece romperse.

Aquí está mi código antes de tiempo:

 <?php
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 $wp_query = new WP_Query();
 $wp_query->query('posts_per_page='.get_option('posts_per_page').'&paged=' . $paged);
 ?>

Y este es el código que estoy usando para la paginación:

<?php wp_reset_postdata(); ?>

<div class="nav-previous" style="margin-bottom:24px; font-size:1.3em;"><?php next_posts_link(__('<span class="meta-nav">&laquo;</span> Entradas anteriores', '')) ?></div>
<div class="nav-next" style="margin-bottom:24px; font-size:1.3em;"><?php previous_posts_link(__('Entradas recientes <span class="meta-nav">&raquo;</span>', '')) ?></div>

Cualquier ayuda es muy apreciada.

Johann

    
pregunta Johann 25.06.2013 - 17:05

1 respuesta

4

Por supuesto que se rompe. La paginación depende de la consulta principal guardada en el objeto $wp_query y usted la ha sobrescrito. Cuando la página siguiente cargue, se ejecutará el wp_query ordinario que no ha sobrescrito y no coincidirá con el que ha modificado.

Crea un filtro para pre_get_posts para alterar la consulta principal.

function pregp_wpse_97354($qry) {
  // control where this runs
  if (is_main_query() && $qry->is_archive()) {
    $qry->set('offset',5);
  }
}
add_action('pre_get_posts','pregp_wpse_97354');

Observe // control where this runs . La línea que sigue inmediatamente determina dónde se ejecuta este filtro. No me basta con tu configuración para hacerlo bien, así que inventé algo. Estoy seguro de que eso debe ser más específico.

    
respondido por el s_ha_dum 25.06.2013 - 17:27

Lea otras preguntas en las etiquetas