Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menetapkan jenis siaran tersuai add_rewrite_rule WordPress dengan betul

Blog wp saya mempunyai jenis siaran tersuai yang dipanggil "rules_and_laws" dan saya menambah fungsi untuk menentukan peraturan penulisan semula:

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

Peraturan ini berfungsi untuk jenis siaran tersuai "rules_and_law", satu-satunya masalah ialah kini semua halaman dan catatan blog yang lain mengembalikan 404.

Saya cuba pendekatan lain, cuba gunakan url tulis semula hanya untuk cpt 'peraturan_dan_undang-undang' tetapi tiada apa yang berhasil:

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

Sebagai contoh, dengan kod ini, peraturan tidak digunakan sama sekali (nampaknya is_singular('rules_and_laws') tidak berfungsi).

Ini ialah contoh URL asas:

https://website.com?rules_and_laws=art-4-security-regulation

Ini adalah penulisan semula:

https://website.com/art-4-security-regulation

Terima kasih atas bantuan anda.

P粉587970021P粉587970021251 hari yang lalu327

membalas semua(1)saya akan balas

  • P粉514458863

    P粉5144588632024-01-17 11:43:14

    Versi kod yang dikemas kini yang sepatutnya menyelesaikan isu ini:

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

    balas
    0
  • Batalbalas