私は、/ category /を著者アーカイブページに追加して、すべての著者の特定のカテゴリからの投稿だけをフィルタリングします。これは次のようなものです。mysite.com/author/me/movies
関数を使ってそれをする方法はありますか?私はこのmysite.com/author/me/?category=movies
のようなものを使う方法を知っています、しかし私は正しいパーマリンクを使いたいです。
これを達成するには 'add_rewrite_rule`を使って新しい書き換えルールを追加します。
カテゴリがデフォルトのWordPressカテゴリの場合、query_var
を登録する必要はありませんが、カテゴリがカスタムカテゴリの場合は、query_var
フィルタを使用してquery_vars
を登録する必要があります。
カテゴリがデフォルトの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);
カテゴリがカスタムクエリ変数(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' );
テンプレートでカスタムクエリ変数を使用するには、get_query_var
関数を使用します。
$author_category = get_query_var( 'author_category' );
参照: