Je souhaite ajouter/category/à une page d'archive d'auteur pour ne filtrer que les publications d'une catégorie spécifique de tous les auteurs, à peu près comme ceci: mysite.com/author/me/movies
Y a-t-il un moyen de le faire en utilisant une fonction? Je sais comment utiliser quelque chose comme ceci mysite.com/author/me/?category=movies
, mais je veux utiliser des permaliens corrects.
Vous pouvez y parvenir en ajoutant une nouvelle règle de réécriture à l'aide de 'add_rewrite_rule`.
Si la catégorie est la catégorie WordPress par défaut, vous n'avez pas besoin d'enregistrer un query_var
, mais si votre catégorie est une catégorie personnalisée, vous devez alors enregistrer un query_var
à l'aide du filtre query_vars
.
Si catégorie est la catégorie par défaut de WordPress:
function wpse256215_custom_rewrite_rule() {
add_rewrite_rule('^author/([^/]*)/([^/]*)/?','index.php?author_name=$matches[1]&category_name=$matches[2]','top');
}
add_action('init', 'wpse256215_custom_rewrite_rule', 10, 0);
Si la catégorie est une variable de requête personnalisée (author_category):
function wpse256215_custom_rewrite_rule() {
add_rewrite_rule('^author/([^/]*)/([^/]*)/?','index.php?author_name=$matches[1]&author_category=$matches[2]','top');
}
add_action('init', 'wpse256215_custom_rewrite_rule', 10, 0);
function wpse256215_query_vars( $query_vars ) {
$query_vars[] = 'author_category';
return $query_vars;
}
add_filter( 'query_vars', 'wpse256215_query_vars' );
Pour utiliser la variable de requête personnalisée dans votre modèle, vous pouvez ensuite utiliser la fonction get_query_var
:
$author_category = get_query_var( 'author_category' );
REFERENCE: