J'ai un exemple de code:
function change_author_permalinks() {
global $wp_rewrite;
$wp_rewrite->author_base = 'u';
$wp_rewrite->author_structure = "/" . $wp_rewrite->author_base . '/%author%';
add_rewrite_rule('u/([^/]+)/?$', 'index.php?author_name=$matches[1]', 'top');
}
add_action('init','change_author_permalinks');
mais mon jeu actuel sur mon blog est:
t%post%
(ex: www.domain.com/tauthor/username
)
Je veux changer à:
www.domain.com/u/username
Mais quand exécuter le code, le résultat est la page non trouvée? Comment le réparer ?
Vous êtes proche, mais vous n'avez pas besoin de l'appel add_rewrite_rule
.
add_action('init', 'wpse82004_init');
function wpse82004_init()
{
global $wp_rewrite;
$wp_rewrite->author_base = 'u';
$wp_rewrite->author_structure = '/' . $wp_rewrite->author_base . '/%author%';
}
Une fois que cela est en place, il suffit de ré-enregistrer les permaliens.
Voici un plugin pour mettre une option sur votre page de permaliens pour faire ceci.
Voici ce que j'ai fait pour changer la base d'auteurs:
// change base of author pages- need to save permalinks to take effect
function wpa_82004(){
global $wp_rewrite;
$wp_rewrite->author_base = 'people'; // or whatever
}
add_action('init','wpa_82004');
Une fois que vous avez exécuté ceci, assurez-vous de ré-enregistrer vos permaliens. (Options-> Permaliens) Vous devez vider vos règles rewrite_rules pour savoir même si cela fonctionne.