Wordpress - перепишите из? Demo to/demo/

проблема

Я хочу переписать мою GET-переменную в /demo/.

Моя текущая структура постоянной ссылки: /Мой новый пост-/? Демонстрационный = истина

Что я хочу: /Мой новый столб/демо/

У меня есть этот код:

Он позволяет использовать переменную "demo" $ _GET, а затем эхо "true". Он работает, только часть перезаписи слева.

Дополнительная информация

  • Он должен работать со всеми постами (а не только с "my-new-post").
  • Он не должен возвращать 404.
  • Я должен иметь возможность получить идентификатор сообщения.
  • GET переменная "demo" может быть правдой или пустой. Не важно.
1 ответ

Это работает до сих пор...

// Actions - Rewrite rules
add_filter('query_vars', array($wp_comment_pages, 'add_get_variable'));
add_action('generate_rewrite_rules', array($wp_comment_pages, 'add_rewrite_rule'));

// Plugin container
class wp_comment_pages
{ 
 // Flush the rules - only needed once
 function flush_rules()
 {
 global $wp_rewrite;
 $wp_rewrite->flush_rules();
 }

 // Add get variable to query vars
 function add_get_variable($public_query_vars)
 {
 $public_query_vars[] = 'demo';
 return $public_query_vars;
 }

 // Generate permalinks
 function add_rewrite_rule($wp_rewrite)
 {
 $new_rules = array(
 '(.+)/demo' => 'index.php?p=' . $wp_rewrite->preg_index(1) . '&demo=true'
 );

 $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
 }
}

licensed under cc by-sa 3.0 with attribution.