Помогите, пожалуйста, подкорректировать функцию wp_canonical, чтобы она не выводила каноническую ссылку на страницах пагинации.

Romanov Roman
На сайте с 21.06.2018
Offline
206
185
Вот сама функция.
Заранее Вам благодарен!
remove_action('wp_head', 'rel_canonical');
function mayak_wp_canonical(){
if ( !is_singular() )
                return;
        global $wp_the_query;
        if ( !$id = $wp_the_query->get_queried_object_id() )
                return;
        $link = get_permalink( $id );
        if ( $page = get_query_var('cpage') )
                $link = get_comments_pagenum_link( $page );
        echo "<link rel='canonical' href='$link' />\n";
}
add_action('wp_head', 'mayak_wp_canonical',3);
function mayak_canonical(){
                if (is_home() ) {
                        $mayak_chief_link = get_option('home');
                        $mayak_home_link = mayak_link_paged($mayak_chief_link);
                        {
                echo "".'<link rel="canonical" href="'.$mayak_home_link.'" />'."\n"; 
        }
} else if (is_category()) {
                        $mayak_cat_link = get_category_link(get_query_var('cat'));
                        $mayak_category_link = mayak_link_paged($mayak_cat_link);
                        {
                echo "".'<link rel="canonical" href="'.$mayak_category_link.'" />'."\n"; 
        }
} 
}
function mayak_link_paged($link) {
                        $mayak_page = get_query_var('paged');
                        $mayak_check = function_exists('user_trailingslashit');
            if ($mayak_page && $mayak_page > 1) {
                $link = trailingslashit($link) ."page/". "$mayak_page";
                if ($mayak_check) {
                    $link = user_trailingslashit($link, 'paged');
                } else {
                    $link .= '/';
                }
                }
                        return $link;
        }
add_action('wp_head', 'mayak_canonical');


Всем удачи в продвижении сайтов. Будьте здоровы и счастливы, а остальное - "приложится".
IS
На сайте с 16.08.2006
Offline
158
#1
Если правильно понимаю, то 3 строку изменить на:
if ( !is_singular() || is_paged())

а в начале function mayak_canonical(){ добавить:
if ( is_paged()) return;

Romanov Roman
На сайте с 21.06.2018
Offline
206
#2
Igor-san #:
Если правильно понимаю, то 3 строку изменить на:

а в начале function mayak_canonical(){ добавить:

Не получается...

Romanov Roman
На сайте с 21.06.2018
Offline
206
#3

Сам разобрался...

Вот так правильно:

if (is_home() && !is_paged()) {


} else if (is_category() && !is_paged()) {

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий