WP querystring переписать вопрос

У меня есть задание переписать запрос на несколько «SEO дружественный» URL:

Мне нужно повернуть URL-адрес следующим образом: example.com/blog/?category=value&tags=value1,value2&keyword=value&page=value к этому: example.com/blog/category/value/tags/value1-value1/keyword/value/page/value .

Это также должно быть динамическим, поэтому, если URL-адрес подобен этим: example.com/blog/category/value или example.com/blog/tags/value1-value2 или example.com/blog/category/value/tags/value1-value2 т. д. Он должен по-прежнему работать.

Я посмотрел на функцию add_rewrite_rule() , но я не могу найти примеров того, как я могу выполнить задачу на основе этого, потому что пример, представленный в документации, кажется статическим, и это не то, что мне нужно.

Может ли кто-нибудь дать мне примеры кода или указать мне правильный учебник о том, как я могу выполнить такую ​​структуру?

Обновить

Это то, что я получил до сих пор, это работает, но это так грязно: D, интересно, есть ли способ автоматизировать это как-то: /. Поскольку я предполагаю, что мне нужно будет отредактировать это, добавить строку запроса или удалить или изменить или что-то еще, и это будет трудно сделать с кодом, который у меня есть. Я уверен, что есть лучший способ, но я не могу найти его: / В любом случае код:

 function custom_rewrite_tag() { add_rewrite_tag('%category%', '([^&]+)'); add_rewrite_tag('%tags%', '([^&]+)'); add_rewrite_tag('%search%', '([^&]+)'); add_rewrite_tag('%page%', '([^&]+)'); } add_action('init', 'custom_rewrite_tag', 10, 0); function custom_rewrite_rule() { $page_for_posts = get_post(get_option('page_for_posts')); $page_id = $page_for_posts->ID; $page_slug = $page_for_posts->post_name; $catPreg = 'category/([^/]*)/'; $catMatch = '&category=$matches'; $tagPreg = 'tags/([^/]*)/'; $tagMatch = '&tags=$matches'; $searchPreg = 's/([^/]*)/'; $searchMatch = '&search=$matches'; $pagePreg = 'page/([0-9]{1,})/'; $pageMatch = '&page=$matches'; // Category & Tags & Search & Page add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$tagPreg.$searchPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$tagMatch.'[2]'.$searchMatch.'[3]'.$pageMatch.'[4]', 'top'); // Category & Tags & Search add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$tagPreg.$searchPreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$tagMatch.'[2]'.$searchMatch.'[3]', 'top'); // Category & Tags & Page add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$tagPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$tagMatch.'[2]'.$pageMatch.'[3]', 'top'); // Category & Search & Page add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$searchPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$searchMatch.'[2]'.$pageMatch.'[3]', 'top'); // Tags & Search & Page add_rewrite_rule('^'.$page_slug.'/'.$tagPreg.$searchPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$tagMatch.'[1]'.$searchMatch.'[2]'.$pageMatch.'[3]', 'top'); // Category & Tags add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$tagPreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$tagMatch.'[2]', 'top'); // Category & Search add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$searchPreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$searchMatch.'[2]', 'top'); // Category & Page add_rewrite_rule('^'.$page_slug.'/'.$catPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$catMatch.'[1]'.$pageMatch.'[2]', 'top'); // Tags & Search add_rewrite_rule('^'.$page_slug.'/'.$tagPreg.$searchPreg.'?', 'index.php?page_id='.$page_id.$tagMatch.'[1]'.$searchMatch.'[2]', 'top'); // Tags & Page add_rewrite_rule('^'.$page_slug.'/'.$tagPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$tagMatch.'[1]'.$pageMatch.'[2]', 'top'); // Search & Page add_rewrite_rule('^'.$page_slug.'/'.$searchPreg.$pagePreg.'?', 'index.php?page_id='.$page_id.$searchMatch.'[1]'.$pageMatch.'[2]', 'top'); // Category add_rewrite_rule('^'.$page_slug.'/'.$catPreg.'?','index.php?page_id='.$page_id.$catMatch.'[1]','top'); // Tags add_rewrite_rule('^'.$page_slug.'/'.$tagPreg.'?','index.php?page_id='.$page_id.$tagMatch.'[1]','top'); // Search add_rewrite_rule('^'.$page_slug.'/'.$searchPreg.'?','index.php?page_id='.$page_id.$searchMatch.'[1]','top'); // Page add_rewrite_rule('^'.$page_slug.'/'.$pagePreg.'?','index.php?page_id='.$page_id.$pageMatch.'[1]','top'); } add_action('init', 'custom_rewrite_rule', 10, 0); 

Solutions Collecting From Web of "WP querystring переписать вопрос"