J'essaie de créer un nouveau point de terminaison à l'aide de add_rewrite_endpoint()
. Voici mon code:
// Add query var.
add_filter( 'query_vars', function( $vars ) {
$vars[] = 'my-endpoint';
return $vars;
} );
// Add endpoint.
add_action( 'init', function() {
add_rewrite_endpoint( 'my-endpoint', EP_AUTHORS );
} );
Je peux maintenant visiter exemple.com/author/my-endpoint, ce qui est excellent, mais les points de terminaison "sous" semblent également fonctionner. Par exemple:
Comment puis-je créer mon noeud final sans créer également ces noeuds finaux?
La règle de réécriture ajoutée par:
add_rewrite_endpoint( 'my-endpoint', EP_AUTHORS );
est
author/([^/]+)/my-endpoint(/(.*))?/?$
=>
index.php?author_name=$matches[1]&my-endpoint=$matches[3]
de sorte qu'il suppose rien après par exemple /author/henrywright/my-endpoint/...
.
Vous pouvez plutôt essayer de le remplacer par add_rewrite_rule()
, par exemple.
add_rewrite_rule(
'^author/([^/]+)/my-endpoint/?$',
'index.php?author_name=$matches[1]&my-endpoint=1',
'top'
);