Maison > Questions et réponses > le corps du texte
Mon blog wp a un type de publication personnalisé appelé "rules_and_laws" et j'ai ajouté une fonction pour spécifier les règles de réécriture :
function custom_rules_and_laws_permalink_structure() { add_rewrite_rule( '([^/]+)/?$', 'index.php?rules_and_laws=$matches[1]', 'top' ); } add_action( 'init', 'custom_rules_and_laws_permalink_structure' );
La règle fonctionne pour le type de publication personnalisé "rules_and_law", le seul problème est que désormais toutes les autres pages et publications du blog renvoient 404.
J'ai essayé une autre approche, j'ai essayé d'appliquer l'URL de réécriture uniquement au cpt 'rules_and_laws' mais rien n'a fonctionné :
function custom_rules_and_laws_permalink_structure() { // Check if the current post type is 'rules_and_laws' if (is_singular('rules_and_laws')) { add_rewrite_rule( '([^/]+)/?$', 'index.php?rules_and_laws=$matches[1]', 'top' ); flush_rewrite_rules(); // Flush the rewrite rules to apply the changes } } add_action('init', 'custom_rules_and_laws_permalink_structure');
Par exemple, avec ce code, les règles ne sont pas appliquées du tout (il semble que is_singular('rules_and_laws') ne fonctionne pas).
Voici un exemple d'URL de base :
https://website.com?rules_and_laws=art-4-security-regulation
Voici la réécriture :
https://website.com/art-4-security-regulation
Merci pour votre aide.
P粉5144588632024-01-17 11:43:14
Version mise à jour du code qui devrait résoudre ce problème :
function custom_rules_and_laws_permalink_structure() { // Register the rewrite rule only for the 'rules_and_laws' post type add_rewrite_rule( '^rules_and_laws/([^/]+)/?$', 'index.php?rules_and_laws=$matches[1]', 'top' ); // Flush the rewrite rules to apply the changes flush_rewrite_rules(); } add_action('init', 'custom_rules_and_laws_permalink_structure');