Advertisement
tolikpunkoff

rel-canonical

Jan 20th, 2017
607
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.70 KB | None | 0 0
  1. /*** Функция вывода rel="canonical" ***/
  2. remove_action('wp_head', 'rel_canonical');
  3. function mayak_wp_canonical(){
  4. if ( !is_singular() )
  5.         return;
  6.     global $wp_the_query;
  7.     if ( !$id = $wp_the_query->get_queried_object_id() )
  8.         return;
  9.     $link = get_permalink( $id );
  10.     if ( $page = get_query_var('cpage') )
  11.         $link = get_comments_pagenum_link( $page );
  12.     echo "<link rel='canonical' href='$link' />\n";
  13. }
  14. add_action('wp_head', 'mayak_wp_canonical',3);
  15. function mayak_canonical(){
  16.         if (is_home() ) {
  17.             $mayak_chief_link = get_option('home');
  18.             $mayak_home_link = mayak_link_paged($mayak_chief_link);
  19.             $mayak_home_link = trailingslashit($mayak_home_link);
  20.             {
  21.         echo "".'<link rel="canonical" href="'.$mayak_home_link.'" />'."\n";
  22.     }
  23. } else if (is_category()) {
  24.             $mayak_cat_link = get_category_link(get_query_var('cat'));
  25.             $mayak_category_link = mayak_link_paged($mayak_cat_link);
  26.             {
  27.         echo "".'<link rel="canonical" href="'.$mayak_category_link.'" />'."\n";
  28.     }
  29. } else if (function_exists('is_tag') && is_tag()){
  30.             $tag = get_term_by('slug',get_query_var('tag'),'post_tag');
  31.         if (!empty($tag->term_id)) {
  32.             $tag_link = get_tag_link($tag->term_id);
  33.             }
  34.             $mayak_tag_link = mayak_link_paged($tag_link);
  35.             $mayak_tag_link = trailingslashit($mayak_tag_link);
  36.            {
  37.         echo "".'<link rel="canonical" href="'.$mayak_tag_link.'" />'."\n";
  38.     }
  39. } else if (is_author()){
  40.             global $cache_userdata;
  41.             $userid = get_query_var('author');
  42.             $mayak_auth_link = get_author_link(false, $userid);
  43.             $mayak_author_link = mayak_link_paged($mayak_auth_link);
  44.         {
  45.         echo "".'<link rel="canonical" href="'.$mayak_author_link.'" />'."\n";
  46.     }
  47. }
  48. else if (is_date()){
  49. if (get_query_var('m')) {
  50.                 $m = preg_replace('/[^0-9]/', '', get_query_var('m'));
  51.                 switch (strlen($m)) {
  52.                     case 0:
  53.                         $mayak_date_link = get_year_link($m);
  54.                         $mayak_date_link = mayak_link_paged($mayak_date_link);
  55.                         break;
  56.                     case 1:
  57.                         $mayak_date_link = get_month_link(substr($m, 0, 4), substr($m, 4, 2));
  58.                         $mayak_date_link = mayak_link_paged($mayak_date_link);
  59.                         break;
  60.                     case 2:
  61.                         $mayak_date_link = get_day_link(substr($m, 0, 4), substr($m, 4, 2),
  62.                                              substr($m, 6, 2));
  63.                         $mayak_date_link = mayak_link_paged($mayak_date_link);                   
  64.                         break;
  65.                     default:
  66.                         $mayak_date_link = '';
  67.                 }
  68.                 }
  69.                 if (is_day()) {
  70.                 $mayak_date_link = get_day_link(get_query_var('year'),  get_query_var('monthnum'), get_query_var('day'));
  71.                 $mayak_date_link = mayak_link_paged($mayak_date_link);                   
  72.             } else if (is_month()) {
  73.                 $mayak_date_link = get_month_link(get_query_var('year'), get_query_var('monthnum'));
  74.                 $mayak_date_link = mayak_link_paged($mayak_date_link);                     
  75.             } else if (is_year()) {
  76.                 $mayak_date_link = get_year_link(get_query_var('year'));
  77.                 $mayak_date_link = mayak_link_paged($mayak_date_link);
  78.             }
  79.         {
  80.         echo "".'<link rel="canonical" href="'.$mayak_date_link.'" />'."\n";
  81.         }
  82.     }
  83. }
  84. function mayak_link_paged($link) {
  85.             $mayak_page = get_query_var('paged');
  86.             $mayak_check = function_exists('user_trailingslashit');
  87.         if ($mayak_page && $mayak_page > 1) {
  88.             $link = trailingslashit($link) ."page/". "$mayak_page";
  89.             if ($mayak_check) {
  90.                 $link = user_trailingslashit($link, 'paged');
  91.             } else {
  92.                 $link .= '/';
  93.             }
  94.         }
  95.             return $link;
  96.     }
  97. add_action('wp_head', 'mayak_canonical');
  98.  
  99. /*** Конец функции вывода rel="canonical" ***/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement