web-dev-qa-db-fra.com

comment ajouter une règle de réécriture au type de message par défaut de WordPress

bonjour essayer d'ajouter la règle de réécriture au type de message par défaut avec cette

add_action('init', 'add_my_rewrite');
function add_my_rewrite() {
    global $wp_rewrite;
    $wp_rewrite->add_rule('(.*)/server/([^/]+)','index.php?p=$matches[1]&server=$matches[2]','top');
    $wp_rewrite->flush_rules(false);
}
function add_query_vars_filter($vars){
  $vars[] = "server";
  return $vars;
}
add_filter('query_vars','add_query_vars_filter');

mais ne fonctionne pas disons que mon URL de post est http://localhost/wordpress/movie-slug/ je veux que l'url soit comme ça http://localhost/wordpress/movie-slug/server/1 avec l'ajout du serveur de paramètres à l'URL comment puis-je le faire merci

1
Mouner Mostafa

La variable p attend un identifiant de publication, utilisez plutôt name. Notez également que les règles ne doivent être effacées que lorsqu'elles changent, car il s'agit d'une opération coûteuse en calcul. Il est préférable de faire cela lors du changement de thème ou de l'activation du plug-in, selon le cas, en fonction de l'emplacement de votre code. Vous pouvez également le faire en visitant simplement la page Paramètres> Liens permanents dans admin.

add_action('init', 'add_my_rewrite');
function add_my_rewrite() {
    add_rewrite_rule(
        '^(.*)/server/([^/]+)',
        'index.php?name=$matches[1]&server=$matches[2]',
        'top'
    );
}
function add_query_vars_filter($vars){
    $vars[] = "server";
    return $vars;
}
add_filter('query_vars','add_query_vars_filter');
1
Milo