Як передати до Google відомості про контент, розбитий на сторінки wordpress
Seo
22 лют. 2019 р.
Для 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);