recherche

Maison  >  Questions et réponses  >  le corps du texte

La page WordPress affiche 404 lors de l'ajout d'une URL

J'ajoute des règles de réécriture à un script PHP inclus dans une page WordPress avec le permalien kb

De cette façon, je peux visiter domain.com/kb et afficher la page.

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

Mais lorsque je visite une page qui contient d'autres chaînes dans l'URL, j'obtiens un 404.

Ainsi, lorsque je visite domain.com/kb, la bonne page s'affiche, puis lorsque je visite domain.com/kb/84/92, la page s'affiche 404

J'ai juste besoin de pouvoir lire des paramètres d'URL supplémentaires dans des scripts PHP comme $_GET["kb_cat"]

P粉569205478P粉569205478364 Il y a quelques jours560

répondre à tous(2)je répondrai

  • P粉949190972

    P粉9491909722024-01-17 11:01:28

    Essayez ceci :

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

    Vous pouvez vérifier les expressions régulières pour la concurrence sur https://regex101.com/ ou sur tout autre site Web en ligne similaire

    répondre
    0
  • P粉105971514

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

    Allez plus loin et utilisez les paramètres :

    function add_query_vars_filter( $vars ){
        $vars[] = "kb_cat";
        $vars[] = "kb_seq";
        return $vars;
    }
    add_filter( 'query_vars', 'add_query_vars_filter' );

    Chargez ensuite le fichier de modèle personnalisé :

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

    Une fois ajouté à functions.php, accédez à Paramètres > Permaliens et cliquez sur Enregistrer les modifications pour réinitialiser les règles d'actualisation

    répondre
    0
  • Annulerrépondre