Rumah > Soal Jawab > teks badan
Saya menambah peraturan tulis semula pada skrip PHP yang disertakan dalam halaman WordPress dengan pautan kekal kb
Dengan cara ini saya boleh melawati domain.com/kb dan memaparkan halaman tersebut.
function wdm_add_rewrite_rules() { add_rewrite_rule( '^kb/([^/]+)/?$', 'kb?kb_cat=$matches[1]&kb_seq=1', 'top'); } add_action('init', 'wdm_add_rewrite_rules');
Tetapi apabila saya melawat halaman yang mengandungi rentetan lain dalam URL, saya mendapat 404.
Jadi apabila saya melawat domain.com/kb ia menunjukkan halaman yang betul, kemudian apabila saya melawat domain.com/kb/84/92 ia menunjukkan 404
Saya hanya perlu dapat membaca parameter url tambahan dalam skrip PHP seperti $_GET["kb_cat"]
P粉9491909722024-01-17 11:01:28
Cuba ini:
function wdm_add_rewrite_rules() { add_rewrite_rule( '^kb\/([^\/]+)\/?([^\/]+)$', 'kb?kb_cat=$matches[1]&kb_seq=1', 'top'); } add_action('init', 'wdm_add_rewrite_rules');
Anda boleh menyemak ungkapan biasa untuk pertandingan di https://regex101.com/ atau mana-mana tapak web dalam talian lain yang serupa
P粉1059715142024-01-17 00:28:54
function wdm_add_rewrite_rules() { add_rewrite_rule( '^kb$', 'index.php?kb_cat=$matches[1]&kb_seq=1', 'top'); } add_action('init', 'wdm_add_rewrite_rules');
Maju selangkah lebih jauh dan gunakan parameter:
function add_query_vars_filter( $vars ){ $vars[] = "kb_cat"; $vars[] = "kb_seq"; return $vars; } add_filter( 'query_vars', 'add_query_vars_filter' );
Kemudian muatkan fail templat tersuai:
function include_custom_template($template){ if(get_query_var('kb_cat') && get_query_var('kb_seq')){ $template = get_template_directory() ."/my-custom-template.php"; } return $template; } add_filter('template_include', 'include_custom_template');
Setelah ditambahkan pada functions.php
, pergi ke Tetapan > Pautan kekal dan klik "Simpan Perubahan" untuk menetapkan semula peraturan muat semula