WordPress как на ладони
wordpress jino

Как прописать keywords на страницы вордпресс без плагина

Здравствуйте! Я уже описывал данный вопрос в комментарии: "Замечательный код! Убрал All in One SEO Pack )). Вот только есть одна проблемка,на страницах создаю кейвордс. а он не прописывается. А в остальном все вроде пока отлично работает", но так и не получил в этом рекомендации и решил задать вопрос здесь. Заранее спасибо!

Вот код страницы

<!DOCTYPE html>
<html>
<head>
<title>миссия автора | Блог Сергея Черняева - Покорители мечты</title>
	<meta name='description' content='узнайте какая моя миссия как автора данного блога' />
		<meta name='robots' content='index,follow' />

	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
	<meta name="generator" content="WordPress 3.8.1" /> <!-- leave this for stats please -->

	<link rel="stylesheet" href="http://www.industrialist.net.ua/wp-content/themes/azul/style.css" type="text/css" media="screen" />
	<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.industrialist.net.ua/feed" />
	<link rel="alternate" type="text/xml" title="RSS .92" href="http://www.industrialist.net.ua/feed/rss" />
	<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="http://www.industrialist.net.ua/feed/atom" />
	<link rel="pingback" href="http://www.industrialist.net.ua/xmlrpc.php" />
</head>
<body>

<?php
// А вот код functions 

/** метатег 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 "\n";
	return false;
}

?>
Заметки к вопросу:
Kama 3 года назад

Не понятно: В записях работает, а на постоянных страницах нет? Посмотрел код, должно вроде работать. Отредактируйте вопрос поясните подробнее пожалуйста.

0
penuel825 3 года назад
  • 0
    Kama4716

    is_single() замените на is_singular()

    Вообще, я бы рекомендовал обновить код. На странице где вы брали этот код, он обновлен: http://wp-kama.ru/id_86/sravnenie-seo-plaginov-platinum-seo-pack-i-all-in-one-seo-pack-i-otkaz-ot-nih.html#h3_6

    В частности, код для keywords выглядит так:

    /** 
     * Генерирует метатег keywords для head части сайта
     *
     * Чтобы задать свои keywords для записи, создайте произвольное поле keywords и впишите в значения необходимые ключевые слова. 
     * Для постов (post) ключевые слова генерируются из меток и названия категорий, если не указано произвольное поле keywords.
     *
     * Для меток, категорий и произвольных таксономий, ключевые слова указываются в описании, в шоткоде: [keywords=слово1, слово2, слово3]
     *
     * @ $home_keywords: Для главной, ключевые слова указываются в первом параметре: kama_meta_keywords( 'слово1, слово2, слово3' );
     * @ $def_keywords: сквозные ключевые слова - укажем и они будут прибавляться к остальным на всех страницах 
     *
     * version 0.2
     */
    function kama_meta_keywords( $home_keywords = '', $def_keywords = '' ){
    	global $wp_query, $post;
    
    	$out = '';
    
    	if ( is_front_page() ){
    		$out = $home_keywords;
    	}
    	elseif( is_singular() ){
    		$out = get_post_meta($post->ID, 'keywords', true);
    
    		// для постов указываем ключами метки и категории, если не указаны ключи в произвольном поле
    		if( ! $out && $post->post_type == 'post' ){
    			$res = wp_get_object_terms( $post->ID, array('post_tag', 'category'), array('orderby' => 'none') ); // получаем категории и метки
    			if( $res ) 
    				foreach( $res as $tag )
    					$out .= ", $tag->name";
    
    			$out = ltrim($out, ', ');
    		}
    	}
    	elseif ( is_category() || is_tag() || is_tax() ){
    		if( $desc = $wp_query->queried_object->description ){
    			preg_match( '!\[keywords=([^\]]+)\]!iU', $desc, $match );
    			$out = $match[1] ? $match[1] : '';
    		}
    	}
    
    	if( $out && $def_keywords )
    		$out = $out .', '. $def_keywords;
    
    	if ( $out ) 
    		return print "<meta name=\"keywords\" content=\"$out\" />\n";
    
    	return false;
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.