Як передати до Google відомості про контент, розбитий на сторінки wordpress

Seo 22 лют. 2019
 Як передати до Google відомості про контент, розбитий на сторінки wordpress

Для Seo дуже важливо, щоб пошукові системи знали що у вашого каталогу є сторінка пагінації. Для того щоб вказати пошуковику, що у нас є й інші сторінки, будемо використовувати атрибути rel="next" і rel="prev"

Синтаксис

Додати посилання на попередню та наступну частини статті можна за допомогою HTTP-заголовків або HTML-тегів .

HTTP-заголовки

У відповіді на запит сторінки необхідно повертати один або обидва із наведених нижче HTTP-заголовків.

  • Код Link: <www.example.com/cats_part_3; rel="next"> вказуватиме на наступний фрагмент статті.
  • Код Link: <www.example.com/cats_part_1; rel="prev"> вказуватиме на попередній фрагмент статті.

HTML-теги

Додайте відповідні теги  у розділі  у коді сторінки.

  • Код  вказуватиме на наступний фрагмент статті.
  • Код  вказуватиме на попередній фрагмент статті.
  •  

Код нижче Додає rel="next" та  rel="prev" артибути 

Додаємо код у 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'] = '«'; //Текст посилання "Попередня сторінка"
  $a['next_text'] = '»'; //Текст посилання "Наступна сторінка"

  if ($max > 1) echo '
';
}
function rel_next_prev() {
global $paged;

if ( get_previous_posts_link() ) {
    echo '';
}
if ( get_next_posts_link() ) {
    echo '';
}
}
add_action( 'wp_head', 'rel_next_prev');

/*Add Prev and Next Tags to Paginated Single Posts*/
function add_rel_prev_next_paginated_posts(){
global $post;
$paged = intval(get_query_var('paged'));

if(is_single()){
  $perm_link = get_permalink();

# 1: Count number of paginated pages.
if( isset( $post->post_content ) ){
  $num_pages = substr_count( $post->post_content, '' ) + 1;
}

# 2: Якщо pagination exists add the tags.
if($num_pages > 1){
  $page = intval(get_query_var('page')); # Get Page number
  if( $page == 0 ){ $ page = 1; }
  
  # 3: Add rel="prev" meta tag.
  if( ($page > 1) && ($page <= $num_pages) ){
    $prev_page_num = ($page – 1);
    if($page == 2){ $prev_page_num = '';}
    $full_url = user_trailingslashit(trailingslashit($perm_link) . $prev_page_num);
    echo '';
    echo "\n";
  }
  
  # 4: Add rel="Next" meta tag.
  if( ($page >= 1) && ($page < $num_pages) ){
    $nxt_page_num = ($page + 1);
    $full_url = user_trailingslashit(trailingslashit($perm_link) . $nxt_page_num);
    echo '';
    echo "\n";
  }
  
}}}
add_action('wp_head', 'add_rel_prev_next_paginated_posts', 2);