未分類
0

投稿タグをヘッダーmeta keywordsにする

WordPress(ワードプレス)をCMS的に利用する時、いつも感じること!
head内の
meta name=”Description” content=
meta name=”keywords” content=

は、
やはり全ベ―ジごとに、そのページの属性にあったモノが自動的に挿入されてほしい!もちろん、サイト内で重複せずに!


ググっていたら見つけました!
PHPでmetaタグ(keywords)自動挿入 | WordPressing!
これは、
meta name=”keywords” content=
の方だけですが、
投稿(post)で、各記事ごとに設定した「投稿タグ」をそのままmetaキーワードにする方法。

<?php
function keywords_tag($id)
{
    $terms = get_the_tags($id);
    if(!is_wp_error($terms) && !empty($terms))
    {
        $tags = array();
        foreach($terms as $term) $tags[] = $term->name;
        echo '<meta name="keywords" content="'.implode(',', $tags).'" />';
    }
}

if(is_single()) keywords_tag($post->ID);
?>

投稿ページ(single)の場合のみ、投稿タグがmetaキーワードとして入って、

<meta name="keywords" content="投稿タグ1,投稿タグ2,投稿タグ3,投稿タグ4" />

と表示。
(投稿ページ以外では、meta name=”keywords”~自体が非表示)

ちなみに、
自分がよく利用させて頂いているテーマ賢威5.0では、
functions.php内に記述されている下記コードより出力しているようです。

/**
 * タグを meta keyword に表示する 
 */
function the_keyword_keni()
{
	global $wp_query;
	$cat = get_query_var('cat');

	if( !empty( $cat ) )
	{
		single_cat_title() ;
	}
	else if( is_tag() )
	{
		single_tag_title() ;
	}
	else if( is_month() )
	{
		printf( __('Archive List for %s','keni'), get_the_time(__('F Y','keni'))) ;
	}
	else if( is_search() )
	{
		printf( __('Search Result for %s','keni'), esc_html(get_search_query())) ;
	}
	else if( is_single() )
	{
		$tags = get_the_tags($wp_query->post->ID);
		$tag_list = "";
		if ( $tags ) {
			foreach ( $tags as $tag ) {
				$tag_list .= esc_html($tag->name) . ', ';
			}
		}
		$tag_list = strtolower(rtrim($tag_list, " ,"));
		echo $tag_list;
	}
}

header.php内の記述

<meta name="keywords" content="<?php the_keyword_keni(); ?>" />
関連記事
保護中: Myメモ:n-a.c
Ktai Styleヘッダー内でtitleタグ分岐
固定ページ一覧表示のリストタイトルをカスタムフィールドにする~get_posts