web-dev-qa-db-fra.com

Utilisation des redirections $ paged/page/2 vers la page 1

J'ai configuré une requête personnalisée pour mes articles (single.php) avec la pagination, ce qui en passant fonctionne très bien avec la structure permalien par défaut.

domain.com/p=ID&paged=2

si je bascule les permaliens vers /% postname%/la page/2/redirige vers la première page.

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array( 'connected_type'=> 'posts_to_posts', 'posts_per_page' => 3, 'paged' => $paged, 'order' => 'ASC', 'connected_items' => get_queried_object() );

$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query( $args );
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>

    <a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>

<?php endwhile; endif; $wp_query = null; $wp_query = $temp; wp_reset_query(); ?>

Ce qui me dérange, c'est le fait qu’ils travaillent avec les permaliens par défaut. Pourquoi ne pas travailler avec les "jolis" liens?

La pagination de la page d'accueil fonctionne bien, mais uniquement la page de publication qui a été gâchée. Quelqu'un peut-il m'indiquer la bonne direction? Où devrais-je chercher des erreurs?

J'ai désactivé tous les plugins, supprimé htaccess et créé un nouveau, toujours rien.

1
user156

Si quelqu'un rencontre ce problème, vous pouvez l'ajouter à votre code functions.php

add_filter('redirect_canonical','pif_disable_redirect_canonical');

function pif_disable_redirect_canonical($redirect_url) {
    if (is_singular()) $redirect_url = false;
return $redirect_url;
}

Source

3
user156

Si ce n'est pas la boucle principale. aka (Blog Page) Wordpress interprétera le/2 comme un nom de sous-page et non comme une requête de type paging_var.

Si vous voulez que cela fonctionne sur une page, vous devez enregistrer un query_var personnalisé http://codex.wordpress.org/WordPress_Query_Vars et définir la structure/page/paging/2 par exemple.

0
Robin Westerlundh