Передача пользовательских аргументов в paginate_links

Например, у меня есть domain.com/about?project=1 но у меня есть permalinks enabled, и я использую thins для создания разбиения на страницы paginate_links . Суть в том, что созданные сгенерированные ссылки похожи на этот domain.com/about?project=1/page/1 и это ломает все, потому что проект взят как 1/page/1

Есть способ получить domain.com/about/project/1/page/1 в ссылках на страницы? Я представляю это из формы, используя для отображения проекта.

Solutions Collecting From Web of "Передача пользовательских аргументов в paginate_links"

Чтобы добавить аргументы в ссылки в сообщениях 'add_args' аргумент 'add_args' в этой функции. Вы должны передать аргументы как ассоциативный массив. Итак, чтобы добавить project=1 в конец всех ваших ссылок, вы сделаете следующее:

 global $wp_query; paginate_links(array( 'total' => $wp_query->max_num_pages, 'current' => (get_query_var('paged') ? get_query_var('paged') : 1), 'base' => 'http://domain.com/about/%_%', 'format' => 'page/%#%', 'add_args' => array( 'project' => 1 /* or whatever the project number is*/ ), )); 

Надеюсь, что это помогло!

РЕДАКТИРОВАТЬ

Чтобы получить domain.com/about/projects/1/page/1 , вы можете добавить настраиваемый permastruct. Я собираюсь предположить, что это страница.

 function wpse21802_init(){ add_rewrite_rule( '([^/]+)/projects/([^/])/?$', 'index.php?pagename=$matches[1]&project=$matches[2]', 'top' ); add_rewrite_rule( '([^/]+)/projects/([^/])/page/(/d+)/?$', 'index.php?pagename=$matches[1]&project=$matches[2]&paged=$matches[3]', 'top' ); } add_action( 'init', 'wpse21802_init' ); 

После добавления этого кода очистите правила перезаписи, перейдя в Настройки -> Перманентные.