Помогите допилить пагинацию URL — убрать лишние символы

Запилил пагинацию галереи, но мне не нравится корявые URL

Сейчас

http://example.com/info-test-paginat/
http://example.com/info-test-paginat/?cpage=2
http://example.com/info-test-paginat/?cpage=3

Хочу

http://example.com/info-test-paginat/
http://example.com/info-test-paginat/2
http://example.com/info-test-paginat/3

при возврате со 2-й на первую страницу получаю лишние ?cpage=1
http://example.com/info-test-paginat/?cpage=1

1 Как исправить ?cpage=2 просто на 2 и так далее
2 Как исправить чтоб при возврате на первую пропадали символы ?cpage=1 ?
3 Подскажите что поправить чтоб возможно было изменять названия страниц пагинации под свои нужды к примеру

http://example.com/info-test-paginat/chast=2
http://example.com/info-test-paginat/stranica=2
http://example.com/info-test-paginat/prodoljenie/2

4 В новых названиях не должно быть спец символов типа "вопросительного занака"

5 Как сделать постоянно видимыми
'prev_text' => __('«'),
'next_text' => __('»'),

6 Вылечить баг - Если зайти на странице под таким адрессом, то она будет работать
/example.com/info-test-paginat/ 20 /
/example.com/info-test-paginat/ любое число /chast=2
а URL продолжит слаживаться

<?php if ( is_user_logged_in() ) { /* только для залогиненых */ ?>    

<div class="gap"></div>
<hr />

<div id="testborder">
<?php 
	/*  pagination gallery for me Kolshix v: 1.1 */
	$categories = get_post_gallery( $post->ID, false );
	$categories = explode(',', $categories['ids']); 
	$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;  // слово в адресе
	$numOfItems = 10;                                                   // количество постов на странице
	$to = $page * $numOfItems;                                          // 
	$current = $to - $numOfItems;                                       // 
	$total = sizeof($categories);                                       // всего 

	$outoput = paginate_links( array(   
	   'base' => add_query_arg( 'cpage', '%#%' ),
	   'format' => '',
	   'prev_next' => true,
	   'prev_text' => __('«'),
	   'next_text' => __('»'),
	   'total' => ceil($total / $numOfItems),
	   'current' => $page
	));
	echo '<div class="page-links">'. $outoput .'</div><div class="gappagi"></div>';
?>

	<div id="" class="gallery gallery-columns-0 gallery-size-medium" itemscope="" itemtype="http://schema.org/ImageGallery">
		<?php 
			for ($i=$current; $i<$to; ++$i) {            
				$category = $categories[$i];
				if($category==''){ continue; } // оборвать показ изображений - уже пусто

				$attachment = get_post(  $category ); 
				$massiv = array('title' => $attachment->post_title); // получить alt

				// вывод галереи на вкус, цвет и размер
				echo '<figure class="gallery-item" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject"><div class="gallery-icon portrait"><a href="'. get_attachment_link( $category ) . '" itemprop="contentURL"><img src="'. wp_get_attachment_image_url($category,'medium') . '"  class="attachment-medium size-medium" itemprop="thumbnail" alt="'. $massiv[title] .'" /></a></div></figure>';       
			} 
		?> 
	</div>

	<div class="gappagi"></div>

	$outoput = paginate_links( array(   
	   'base' => add_query_arg( 'cpage', '%#%' ),
	   'format' => '',
	   'prev_next' => true,
	   'prev_text' => __('«'),
	   'next_text' => __('»'),
	   'total' => ceil($total / $numOfItems),
	   'current' => $page
	));
	echo '<div class="page-links">'. $outoput .'</div><div class="gappagi"></div>';
</div>

<?php /* только для залогиненых */ } ?>
Заметки к вопросу:
campusboy 7.3 года назад

Не стесняйтесь выложить своё решение с галереями, чтобы было на чём поэкспериментировать. Остальное всё теория.

kolshix 7.3 года назад

исправил вопрос - лови выше