Heim > Fragen und Antworten > Hauptteil
Mein WP-Blog hat einen benutzerdefinierten Beitragstyp namens „rules_and_laws“ und ich habe eine Funktion hinzugefügt, um die Umschreiberegeln festzulegen:
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' );
Die Regel funktioniert für den benutzerdefinierten Beitragstyp „rules_and_law“, das einzige Problem besteht darin, dass jetzt alle anderen Seiten und Beiträge des Blogs 404 zurückgeben.
Ich habe einen anderen Ansatz ausprobiert und versucht, die Umschreibe-URL nur auf cpt „rules_and_laws“ anzuwenden, aber nichts hat funktioniert:
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');
Bei diesem Code werden die Regeln beispielsweise überhaupt nicht angewendet (es sieht so aus, als würde is_singular('rules_and_laws') nicht funktionieren).
Dies ist ein Beispiel für eine Basis-URL:
https://website.com?rules_and_laws=art-4-security-regulation
Dies ist die Neufassung:
https://website.com/art-4-security-regulation
Danke für deine Hilfe.
P粉5144588632024-01-17 11:43:14
应解决该问题的代码更新版本:
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');