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

Seo 3 хвилин 13 секунд 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);