web-dev-qa-db-fra.com

Comment définir la structure de lien permanent via functions.php

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.

9
Tomas Buteler

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' );
15
soulseekah

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' );
2
Saiful Islam