- Statut : non résolu
- Ce sujet contient 9 réponses, 3 participants et a été mis à jour pour la dernière fois par numa1985, le il y a 17 années et 5 mois.
-
AuteurMessages
-
9 février 2007 à 9 h 35 min #450542
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:et
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:
et
Comment résoudre ce probleme d’url svp? Faut-il agir sur la conf de WP ou du serveur?
Merci d’avance
12 février 2007 à 10 h 58 min #591917Salut
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à
12 mars 2007 à 21 h 39 min #591918Je 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_link2et 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?15 mars 2007 à 14 h 00 min #591919En 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
18 mars 2007 à 14 h 50 min #591920j’essaye et je te dis ca.
Merci21 mars 2007 à 19 h 49 min #591921avec la version 1.1.1 ?
22 mars 2007 à 10 h 05 min #591923pour un wp mu.
C’est marqué en haut.22 mars 2007 à 10 h 46 min #591922😉
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 !!!
4 avril 2007 à 13 h 31 min #591924Il me semble que se bug n’est que dans la version 1.0 de Mu.
4 avril 2007 à 17 h 29 min #591925Problème résolu, cela venait de la conf serveur!
Merci beaucoup! ++
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.