Антон Карпенко (karpolan) wrote,
Антон Карпенко
karpolan

Вменяемый <head> для сайта на Wordpress

Wordpress самая популярная CMS в интернете, но из-за того что темы, плагины и скрипты для него делают всякие пионЭры постоянно приходится что-то допиливать напильником... 

Распространенная проблема - отсутствие нормальных мета-тегов в блоке <head>. Из-за этого сайты с кривыми темами плохо индексируются поисковыми сервисами или индексируются совсем не правильно. 

Я тоже столкнулся с такой проблемой на сайте Touchpad Blocker, поэтому взял в руки напильник (скорее даже рашпиль :) и наваял следующий код в header.php темы сайта:

...
<head>
  <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<?php 
  $title_delimeter = '&#45;'; //'&laquo;';
  if (!is_home()) 
  {
  // Every page or post
    $s = get_post_meta(get_the_ID(), 'title', true);
    if ($s <> '') echo "\t<title>$s</title>\n"; else 
    
?>
  <title><?php wp_title($title_delimeter, true, 'right');  bloginfo('name'); ?></title>
<?php
    }
  
    $s = get_post_meta(get_the_ID(), 'description', true);
    if ($s == '') $s = get_bloginfo('description');
    if ($s <> '') echo "\t<meta name=\"description\" content=\"$s\" />\n";
    $s = get_post_meta(get_the_ID(), 'keywords', true);
    if ($s == '' && is_single())
    {
    // Single post page
      $s = get_bloginfo('name');
      $tags = get_tags();
      foreach ($tags as $tag) $s = $s . ', ' . $tag->name;
    }
    if ($s == '') $s = $metakeywords;
    if ($s <> '') echo "\t<meta name=\"keywords\" content=\"$s\" />\n";
  }
  else 
  
  // Blog root page
    $s = get_bloginfo('name');
    $tags = get_tags();
    foreach ($tags as $tag) $s = $s . ', ' . $tag->name;
?>
  <title><?php wp_title($title_delimeter, true, 'right');  bloginfo('name'); ?></title>
  <meta name="description" content="<?php bloginfo('description'); ?>" />
  <meta name="keywords" content="<?php echo $s ?>" />
<?php
  
?>
  <link rel="shortcut icon" href="/favicon.ico" />
...


Теперь для каждой страницы, поста, архива метатеги title, description и keywords расставляются правильно. Более того для любой страницы их можно задавать руками, через соответствующие Custom Fields.

Может кому-то пригодиться :)
Tags: seo, wordpress, блог, воскресенье, время, декабрь, дизайн, дурка, жопа, зима, идея, идиот, интернет, мозги, отдых, очумелые руки, програмизм, сайты, хобби, шаровара, шиза
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment