Изменить строку запроса на довольно постоянную ссылку

У меня есть ссылка http://www.example.com/my-account/view-pet/?pet-page=2

Я хочу изменить его на

  • http://www.example.com/my-account/view-pet/pet-page/2 или
  • http://www.example.com/my-account/view-pet/2

Вот что я пытался до сих пор

function wpse12065_init() { add_rewrite_rule('view-pet(/([^/]+))?(/([^/]+))?/?', 'index.php?pagename=my-account/view-pet&pet-page=$matches[2]', 'top'); } add_action( 'init', array( $this, 'wpse12065_init' ) ); 

Я могу получить ?pet-page=2 get_query_var( 'pet-page' ) ?pet-page=2 используя get_query_var( 'pet-page' )

Я также просмотрел ЭТО, и его все еще не работает

Любая помощь будет принята с благодарностью

Попробуйте это правило перезаписи в своих functions.php

 function string_url_rewrite() { global $wp_rewrite; add_rewrite_tag('%pet-page%', '([^&]+)'); //In the rewrite rule you need to enter page slug and page id add_rewrite_rule('^Enter_Page_slug/([0-9]+)/?', 'index.php?page_id=Enter_Page_ID&pet-page=$matches[1]', 'top'); $wp_rewrite->flush_rules(true); } add_action('init', 'string_url_rewrite', 10, 0); 

Теперь вам также нужно изменить ферму url в anchor tag . Например, ваш предыдущий URL-адрес

 http://www.example.com/my-account/view-pet/?pet-page=2 

Измените этот URL-адрес на этот

 http://www.example.com/my-account/view-pet/2 

Чтобы получить значение использования pet-page используйте следующий метод

 //Storing the value of 'pet-page' in variable $value = get_query_var( 'pet-page' ); if($value){ //checking if variable has any value or not echo 'This is the value '.$value; } else { echo 'No Values'; } 

Примечание. Если это не работает, чем сбросить постоянную ссылку. Для этого перейдите к sentting -> permalink и сохраните изменения.