• Здравствуйте, подскажите в чем может быть проблема. Не отображается мета-тег keywords.
    Есть сайт на ВП. Нужно его оптимизировать.
    Поскольку с плагином all in one seo pack получались одни проблемы, то я решила отказаться от плагина.
    Нашла статью и делала все как там написано.
    Если что вот ссылка http://amateurblogger.ru/seo-optimizaciya-wordpress-title-i-metategi-bez-plagina/
    В header.php прописала код вызова функций:

    <title><?php kama_meta_title (" | "); ?></title>
    <?php kama_meta_keywords () ?>
    <?php kama_meta_description () ?>

    В файл фанкшенс добавила

    /** мета заголовок (title):
    	- Первый параметр функции это разделитель, второй название блога (если не указать берется из Настроек).
    	- Для меток и категорий указывается в настройках в описании (в настройках, по аналогии с пунком 6 Platinum SEO Pack, см. выше) так: [title=Заголовок]
    	- Для страниц или постов, если вы хотите чтобы заголовок страницы отличался от заголовка поста, то создайте произвольное поле title и впишите туда свое название
    ------------------------------------- */
    function kama_meta_title ($sep=" | ",$bloginfo_name=''){
    	global $wp_query,$post;
    	if (!$bloginfo_name) $bloginfo_name = get_bloginfo('name');
    	$wp_title = wp_title($sep, 0, 'right');
    
    	if (is_category() || is_tag()){
    		$desc = $wp_query->queried_object->description;
    		if ($desc) preg_match ('!\[title=(.*)\]!iU',$desc,$match);
    		$out = $match[1] ? $match[1].$sep : ((is_tag())?"Метка:":"Категория:")." $wp_title";
    	}
    	elseif (is_singular()) $out = ($free_title = get_post_meta($post->ID, "title", true)) ? $free_title.$sep : $wp_title;
    	elseif (is_author()) $out = "Статьи автора: $wp_title";
    	elseif (is_day() || is_month() || is_year()) $out = "Архив за: $wp_title";
    	elseif (is_search()) $out = 'Результаты поиска по запросу: '. strip_tags($_GET['s']) . $sep;
    	elseif (is_404()) $out = "Ошибка 404 - страница не существует".$sep.$wp_title;
    
    	$out = trim($out.$bloginfo_name);
    	if ($paged = get_query_var('paged')) $out = "$out (страница $paged)";
    	return print $out;
    }
    
    /** мета описание (description):
    	- Для главной страницы описание указывается в функции, так: kama_meta_description ('Здесь описание блога');
    	- Для страниц меток и категорий указывается в описании (в настройках, по аналогии с пунком 6 Platinum SEO Pack, см. выше), так: [description=текст, описание]
    	- У постов сначала проверяется, произвольное поле description, если оно есть описание берется оттуда, потом проверяется поле "цитата", если цитаты нет, то описание берется как начальная часть контента.
    	- вторым параметром в функции указывается колличество символов для описания: kama_meta_description ('Описание для главной страницы',200);
    ------------------------------------- */
    function kama_meta_description ($home_description='',$maxchar=200){
    	global $wp_query,$post;
    	if (is_singular()){
    		if ( $descript = get_post_meta($post->ID, "description", true) )
    			$out = $descript;
    		elseif ($post->post_excerpt!='')
    			$out = trim(strip_tags($post->post_excerpt));
    		else
    			$out = trim(strip_tags($post->post_content));
    
    		$char = iconv_strlen( $out, 'utf-8' );
    		if ( $char > $maxchar ) {
    			 $out = iconv_substr( $out, 0, $maxchar, 'utf-8' );
    			 $words = split(' ', $out ); $maxwords = count($words) - 1; //убираем последнее слово, ибо оно в 99% случаев неполное
    			 $out = join(' ', array_slice($words, 0, $maxwords)).' ...';
    		 }
    	}
    	elseif (is_category() || is_tag()){
    		$desc = $wp_query->queried_object->description;
    		if ($desc) preg_match ('!\[description=(.*)\]!iU',$desc,$match);
    		$out = $match[1]?$match[1]:'';
    	}
    	elseif (is_home()) $out=$home_description;
    	if ($out){
    		$out = str_replace( array("\n","\r"), ' ', strip_tags($out) );
    		$out = preg_replace("@\[.*?\]@", '', $out); //удаляем шоткоды
    		return print "<meta name='description' content='$out' />\n";
    	}
    	else return false;
    }
    
    /** метатег keywords:
    	- Для главной страницы, ключевые слова указываются в функции так: kama_meta_keywords ('слово1, слово2, слово3');
    	- Также можно вписать ключевые слова во второй параметр, они будут отображаться (добавляться) на всех страницах сайта: kama_meta_keywords ('<ключевики для главной>','<сквозные ключевики>');
    	- Чтобы задать свои keywords для записи, создайте произвольное поле keywords и впишите в значения необходимые ключевые слова. Если такого поля у записи нет, то ключевые слова генерируются из меток и названия категории(й).
    	- Для страниц меток и категорий ключевые слова указываетются в описании (в настройках, по аналогии с пунком 6 Platinum SEO Pack, см. выше) так: [keywords=слово1, слово2, слово3]
    ------------------------------------- */
    function kama_meta_keywords ($home_keywords='',$def_keywords=''){
    	global $wp_query,$post;
    	if ( is_single() && !$out=get_post_meta($post->ID,'keywords',true) ){
    		$out = '';
    		$res = wp_get_object_terms( $post->ID, array('post_tag','category'), array('orderby' => 'none') ); // получаем категории и метки
    		if ($res) foreach ($res as $tag) $out .= " {$tag->name}";
    		$out = str_replace(' ',', ',trim($out));
    		$out = "$out $def_keywords";
    	}
    	elseif (is_category() || is_tag()){
    		$desc = $wp_query->queried_object->description;
    		if ($desc) preg_match ('!\[keywords=(.*)\]!iU',$desc,$match);
    		$out = $match[1]?$match[1]:'';
    		$out = "$out $def_keywords";
    	}
    	elseif (is_home()){
    		$out = $home_keywords;
    	}
    	if ($out) return print "<meta name='keywords' content='$out' />\n";
    	return false;
    }

    Все на странице прописываю с помощью произвольных полей, title и describtion отображаются, а keywords нет.
    Подскажите, пожалуйста, что это может быть?
    Это проблема с новой версией вордпресса?

Просмотр 1 ответа (всего 1)
Просмотр 1 ответа (всего 1)

Тема «Мета теги на сайте» закрыта для новых ответов.