Задать вопрос
@KeicH2O

Верстка кода пагинации WP для SEO?

Добрый всем день! Парни помогите сверстать правильную пагинацию для поисковых систем- гугол и яндекс, чтобы дубли вида page1-100 не шли в поиск. Есть исходный код в теме, нашел его в function.php
/*-----------------------------------------------------------------------------------*/	
/* Pagination
/*-----------------------------------------------------------------------------------*/
function pagination($pages = '', $range = 3) { 
	$showitems = ($range * 3)+1;
	global $paged; if(empty($paged)) $paged = 1;
	if($pages == '') {
		global $wp_query; $pages = $wp_query->max_num_pages; 
		if(!$pages){ $pages = 1; } 
	}
	if(1 != $pages) { 
		echo "<div class='pagination'><ul>";
		if($paged > 2 && $paged > $range+1 && $showitems < $pages) 
			echo "<li><a rel='nofollow' href='".get_pagenum_link(1)."'>&laquo; ".__('First','mythemeshop')."</a></li>";
		if($paged > 1 && $showitems < $pages) 
			echo "<li><a rel='nofollow' href='".get_pagenum_link($paged - 1)."' class='inactive'>&lsaquo; ".__('Previous','mythemeshop')."</a></li>";
		for ($i=1; $i <= $pages; $i++){ 
			if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { 
				echo ($paged == $i)? "<li class='current'><span class='currenttext'>".$i."</span></li>":"<li><a rel='nofollow' href='".get_pagenum_link($i)."' class='inactive'>".$i."</a></li>";
			} 
		} 
		if ($paged < $pages && $showitems < $pages) 
			echo "<li><a rel='nofollow' href='".get_pagenum_link($paged + 1)."' class='inactive'>".__('Next','mythemeshop')." &rsaquo;</a></li>";
		if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) 
			echo "<a rel='nofollow' class='inactive' href='".get_pagenum_link($pages)."'>".__('Last','mythemeshop')." &raquo;</a>";
			echo "</ul></div>"; 
	}
}
  • Вопрос задан
  • 335 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
Я использую такую пагинацию (нашел в одном из сайтов):
functions.php
// постраничная навигация
function wp_corenavi() {
  global $wp_query;
  $pages = '';
  $max = $wp_query->max_num_pages;
  if (!$current = get_query_var('paged')) $current = 1;
  $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
  $a['total'] = $max;
  $a['current'] = $current;

  $total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
  $a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
  $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
  $a['prev_text'] = '&laquo;'; //текст ссылки "Предыдущая страница"
  $a['next_text'] = '&raquo;'; //текст ссылки "Следующая страница"

  if ($max > 1) echo '<div class="navigation">';
  if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
  echo $pages . paginate_links($a);
  if ($max > 1) echo '</div>';
}


Вывод пагинации в шаблоне
<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>


CSS
/* постраничная навигация */
.navigation {
    text-align: center;
    margin: 5px auto;
    clear: both;
    display: block;
    width: 100%;
}
.navigation span {
    display: inline-block;
    background: #2C3E50;
    padding: 5px 10px;
    color: #fff;
}
.navigation a {
    display: inline-block;
    background: #2C3E50;
    padding: 5px 10px;
    color: #fff;
}
.navigation a:hover {
    color:#fff;
    text-decoration:none;
    background: #00635a;
}


А для поисковиков задаю каноникал (Yoast SEO) вместо nofollow etc.
Пример, пагинации - https://md7.info/fakty
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы