[Résolu] Probleme avec pagination (Créer un compte)

  • Statut : non résolu
10 sujets de 1 à 10 (sur un total de 10)
  • Auteur
    Messages
  • #450542
    numa1985
    Membre
    Initié WordPress
    7 contributions

    Bonjour,

    WP mu

    Problème(s) rencontré(s) :
    Je voudrai solliciter votre aide pour résoudre un problème concernant la pagination sous WP MU.
    J’ai donc mis en place 2 blogs sous WP mu (fr et ang).
    En résumé, les 2 blogs sont accessibles aux adresses:

    http://monsite.com/blogs/francais

    et

    http://monsite.com/blogs/english

    Seulement au moment de passer aux pages suivantes et précédentes, les liens semblent incohérents et donc ne permettent pas de résoudre la pagination. Les liens de pagination pointent donc vers:

    http://monsite.com/blogs/english/blogs/english/page/2/

    et

    http://monsite.com/blogs/francais/blogs/francais/page/2/

    Comment résoudre ce probleme d’url svp? Faut-il agir sur la conf de WP ou du serveur?

    Merci d’avance

    #591917
    pablo
    Membre
    Initié WordPress
    39 contributions

    Salut

    Pour résoudre se problème, j’ai modifié le fichier wp-include/link-template.php. Tu modifie les fonction qui créent les liens suivants et précédents pour supprimer la redondance si elle existe (tous ça en php).

    Il y a peut être d’autre solution, mais jusqu’a présent je n’ai pas eu de problème avec celle-là

    #591918
    numa1985
    Membre
    Initié WordPress
    7 contributions

    Je réouvre l’incident, je n’arrive pas a trouver la solution:

    J’ai duppliquer et renommer les fonctions de pagination pour pouvoir les modifier dans mon theme:
    – get_pagenum_link2
    – next_posts2
    – next_posts2_link2
    – previous_posts2
    – previous_posts2_link2
    – posts_nav_link2

    et j’ai créé une fonction telle:

    function stripDoublonURL($URL){
    $liste_chps_url = explode (« / »,$URL);
    $liste_chps_url_unique = array_unique($liste_chps_url);
    foreach ($liste_chps_url_unique as $valeur){
    $chaine2 .= $valeur.’/’;
    }
    return $chaine2;
    }

    et je return un stripDoublonURL($qstr) dans get_pagenum_link2.
    Cependant, je n’ai plus rien a l’affichage des pages.

    Je ne sais pas si ca vient des globals qui ne marchent pas ou que cela ne fonctionne pas aprés la dupplication des fonctions de wp-include dans mon petit require d’entete de mon theme.

    Vous avez une solution?
    D’ou vient le probleme?
    Aurai je oublié quelque chose d’essentiel?

    #591919
    pablo
    Membre
    Initié WordPress
    39 contributions

    En fait cela se joue dans la fonction suivante :

    function get_pagenum_link($pagenum = 1) {
    global $wp_rewrite;

    $qstr = wp_specialchars($_SERVER[‘REQUEST_URI’]);

    $page_querystring = « paged »;
    $page_modstring = « page/ »;
    $page_modregex = « page/? »;
    $permalink = 0;

    $home_root = parse_url(get_option(‘home’));
    $home_root = $home_root[‘path’];
    $home_root = trailingslashit($home_root);
    $qstr = preg_replace(‘|^’. $home_root . ‘|’,  », $qstr);
    $qstr = preg_replace(‘|^/+|’,  », $qstr);

    $index = $_SERVER[‘PHP_SELF’];
    $index = preg_replace(‘|^’. $home_root . ‘|’,  », $index);
    $index = preg_replace(‘|^/+|’,  », $index);

    // if we already have a QUERY style page string
    if ( stristr( $qstr, $page_querystring ) ) {
    $replacement = « $page_querystring=$pagenum »;
    $qstr = preg_replace(« / ».$page_querystring. »[^d]+d+/ », $replacement, $qstr);
    // if we already have a mod_rewrite style page string
    } elseif ( preg_match( ‘|’.$page_modregex.’d+|’, $qstr ) ) {
    $permalink = 1;
    $qstr = preg_replace(‘|’.$page_modregex.’d+|’, »$page_modstring$pagenum »,$qstr);

    // if we don’t have a page string at all …
    // lets see what sort of URL we have…
    } else {
    // we need to know the way queries are being written
    // if there’s a querystring_start (a « ? » usually), it’s definitely not mod_rewritten
    if ( stristr( $qstr, ‘?’ ) ) {
    // so append the query string (using &, since we already have ?)
    $qstr .= ‘&’ . $page_querystring . ‘=’ . $pagenum;
    // otherwise, it could be rewritten, OR just the default index …
    } elseif(  » != get_option(‘permalink_structure’) && ! is_admin() ) {
    $permalink = 1;
    $index = $wp_rewrite->index;
    // If it’s not a path info permalink structure, trim the index.
    if ( !$wp_rewrite->using_index_permalinks() ) {
    $qstr = preg_replace(« #/* » . $index . « /*# », ‘/’, $qstr);
    } else {
    // If using path info style permalinks, make sure the index is in
    // the URL.
    if ( strpos($qstr, $index) === false )
    $qstr = ‘/’ . $index . $qstr;
    }

    $qstr = trailingslashit($qstr) . $page_modstring . $pagenum;
    } else {
    $qstr = $index . ‘?’ . $page_querystring . ‘=’ . $pagenum;
    }
    }

    $qstr = preg_replace(‘|^/+|’,  », $qstr);
    if ( $permalink )
    $qstr = trailingslashit($qstr);
    $qstr = preg_replace(‘/&([^#])(?![a-z]{1,8};)/’, ‘&$1’, trailingslashit( get_option(‘home’) ) . $qstr );

    // showing /page/1/ or ?paged=1 is redundant
    if ( 1 === $pagenum ) {
    $qstr = str_replace(‘page/1/’,  », $qstr); // for mod_rewrite style
    $qstr = remove_query_arg(‘paged’, $qstr); // for query style
    }
    if(mb_substr_count($qstr, $home_root)==2)
    {
    $qstr=str_replace($home_root, »/ »,$qstr);
    return $qstr;
    }
    else
    {
    return $qstr;
    }
    }

    Juste à la fin de la fonction tu as le script qui corrige le problème. Tiens-moi au courant, mais à priori cela devrait résoudre ton problème

    #591920
    numa1985
    Membre
    Initié WordPress
    7 contributions

    j’essaye et je te dis ca.
    Merci

    #591921
    AmO
    Participant
    Maître WordPress
    4447 contributions

    avec la version 1.1.1 ?

    #591923
    numa1985
    Membre
    Initié WordPress
    7 contributions

    pour un wp mu.
    C’est marqué en haut.

    #591922
    AmO
    Participant
    Maître WordPress
    4447 contributions

    😉
    Rien ne t’empêche de préciser la version que tu utilises… :rolleyes:

    Personnellement ce problème n’est pas présent dans la version 1.1.1 en VHOST !!!

    #591924
    pablo
    Membre
    Initié WordPress
    39 contributions

    Il me semble que se bug n’est que dans la version 1.0 de Mu.

    #591925
    numa1985
    Membre
    Initié WordPress
    7 contributions

    Problème résolu, cela venait de la conf serveur!

    Merci beaucoup! ++

10 sujets de 1 à 10 (sur un total de 10)
  • Vous devez être connecté pour répondre à ce sujet.