web-dev-qa-db-fra.com

Plusieurs points finaux dans une URL

J'essaie d'ajouter plusieurs points de terminaison dans une URL, par exemple:

http: // localhost: 1000/manage-lead/lead_id/1000/product_id/123455

Mais de cette manière, la requête var lead_id est égale à 1000/product/123455 et non pas 1000.

Quand je le fais de la manière suivante, tout va bien:

http: // localhost: 1000/manage-lead/lead_id/1000 /? product_id = 123455

Je pense donc que je dois ajouter des règles de réécriture. Wordpress comprend donc que lead_id et product_id sont deux vars de requête.

Comment j'ajoute mes points de terminaison:

function add_lead_management_endpoints() {

    add_rewrite_endpoint( 'lead_id', EP_PAGES );
    add_rewrite_endpoint( 'product_id', EP_PAGES );

}
add_action( 'init', 'add_lead_management_endpoints' );
3
Robbert

Pas sûr du contexte pour cela, s'agit-il d'un type d'article personnalisé ou juste d'une page?

C'est peut-être quelque chose que vous recherchez -

function add_lead_management_endpoints() {
    add_rewrite_rule(
        'manage-lead/lead_id/([0-9]{1,})/product_id/([0-9]{1,})',
        'index.php?pagename=manage-lead&lead_id=$matches[1]&product_id=$matches[2]',
        'top'
    );

    add_rewrite_tag( '%lead_id%', '([^&]+)' );
    add_rewrite_tag( '%product_id%', '([^&]+)' );
}
add_action( 'init', 'add_lead_management_endpoints' );

Vous aurez besoin de vider les permaliens pour que cela prenne effet (visitez les paramètres -> permaliens).

2
Elliott