Je crée un réseau Wordpress et je souhaitais que tous les nouveaux sites aient la même structure de lien permanent (c'est-à-dire "/% year% /% monthnum% /% postname% /"). Je me demande si cela est possible via des hooks ou des hacks dans functions.php, sans avoir à compter sur les utilisateurs pour choisir cette structure.
Vous pouvez définir la structure de lien permanent en appelant la méthode set_permalink_structure()
de l'objet global $wp_rewrite
.
add_action( 'init', function() {
global $wp_rewrite;
$wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%postname%/' );
} );
Voici une version PHP <5.3 du code au cas où vous rencontriez des erreurs.
function reset_permalinks() {
global $wp_rewrite;
$wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%postname%/' );
}
add_action( 'init', 'reset_permalinks' );
La réponse précédente ne fonctionne pas. J'ai eu une solution pure. Peut utiliser Utilisez ce code. Cela fonctionnera à 100%. Merci
/**
* Rewrite set up, when theme activate i mean
*/
if (isset($_GET['activated']) && is_admin()) {
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%/');
$wp_rewrite->flush_rules();
}
/**
* Redirect to Permalink setting Page.
* Otherwise Redirect rule will not work Properly.
*/
function redirect_to_permalink() {
wp_redirect('options-permalink.php');
}
add_action( 'after_switch_theme', 'redirect_to_permalink' );