web-dev-qa-db-fra.com

Comment personnaliser la base d'auteurs sans $ this-> front?

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 ?

3
Hai Truong IT

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.

12
chrisguitarguy

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.

2
helgatheviking