2014年08月14日 web関連WordPressphpSEO対策

重複しないWordPressのdescriptionのコードを書いてみました。
おおまかな確認はしていますが、細かいチェックは出来てません・・・m(_ _)m

Gistはこちら
<?php

//descriptionの設定
function set_description(){
	global $post;
	$content = $post->post_content;
	
	//トップページ
	if ( is_front_page() ) {
		$desc = get_bloginfo('name').":".get_bloginfo('description');
	}else{
		if(is_page() or is_single()){ //固定ページ、記事ページ
			//phpタグを除去
			$content = preg_replace("/<\?php[^>]+\>/i"," ",$content);
			//htmlタグを除去
			$desc = wp_title('',false)." | ".strip_tags($content);
		}elseif( is_category()){ //カテゴリページ
			if(get_query_var('paged')){
				$desc = get_query_var('paged')."ページ目:";
			}
			$desc .= wp_title('',false)."カテゴリの記事一覧";
		}elseif( is_archive()){ //アーカイブページ
			if(is_date()){ //日付ベースのアーカイブページ
				if(is_day()){ //日別アーカイブ
					if(get_query_var('paged')){
						$desc = get_query_var('paged')."ページ目:";
					}
					$desc.= get_the_time('Y'). '年';
					$desc.= get_the_time('m') .'月';
					$desc.= get_the_time('d'). '日';
				}elseif(is_month()){ //月別アーカイブ
					if(get_query_var('paged')){
						$desc = get_query_var('paged')."ページ目:";
					}
					$desc.= get_the_time('Y') .'年';
					$desc.= get_the_time('m'). '月';
				}else { //年別アーカイブ
					if(get_query_var('paged')){
						$desc = get_query_var('paged')."ページ目:";
					}
					$desc.= get_the_time('Y') .'年';
				}
			}elseif(is_author()){ //投稿者アーカイブ	
				if(get_query_var('paged')){
					$desc = get_query_var('paged')."ページ目:";
				}
				$desc .='[投稿者:'. get_the_author_meta('display_name', get_query_var('author'))."]";
			}elseif(is_tag()){	//タグアーカイブ
				if(get_query_var('paged')){
					$desc = get_query_var('paged')."ページ目:";
				}
				$desc.='[タグ:'. single_tag_title( '' , false )."]";
			}else{				
				if(get_query_var('paged')){
					$desc = get_query_var('paged')."ページ目:";
				}
				$desc .= wp_title('',false);		
			}
			$desc .= "の記事一覧";
		}elseif(is_search()) {	//検索結果
			if(get_query_var('paged')){
				$desc = get_query_var('paged')."ページ目:";
			}
			$desc.= '['. get_search_query() .']の検索結果一覧';

		}else{
			if(get_query_var('paged')){
				$desc = get_query_var('paged')."ページ目:";
			}
			$desc .= wp_title('',false);
		}
		
		//descriptionが短すぎる場合はサイト概要、サイト名追加
		if(mb_strlen($desc)<=30){
			$desc .= " ".get_bloginfo('description')."【".get_bloginfo('name')."】";
		}
	
	}
	//固定ページ、記事ページの本文抜粋の改行削除
	$desc = str_replace(array("\r\n","\r","\n"), '', $desc);
	echo '<meta name="description" content="'.esc_html($desc).'">';
}
//descriptionの設定

?>

この投稿へのコメント

コメントはまだありません。

ピックアップ記事

Facebook APIを利用して、外部サイトから自分のウォールに投稿する

2012年03月19日 Facebookphp
ウォールへ投稿 外部サイトからFacebook上のウォールに投稿する方法です。 説明が不要なぐらい簡単でした。 [php]<?php $data = array( 'access_token' => $facebook->getAccessToken(), 'message' => 'API投稿テスト', ); $response = $facebook->…
「Facebook APIを利用して、外部サイトから自分のウォールに投稿する」をはてなブックマークに追加

wordpress カスタムフィールドの値で記事一覧取得、並び替え

2020年01月10日 WordPress
カスタムフィールドの条件が一つの場合 [php]<?php $args = array( 'posts_per_page' => -1, // 全件取得 'category' => array( 12,14 ), // カテゴリ 'meta_key' => 'finished', //カスタムフィールドのキー 'meta_value'…
「wordpress カスタムフィールドの値で記事一覧取得、並び替え」をはてなブックマークに追加

WordPressでidからリンク、アンカーテキストを自動で設定する

2013年10月21日 WordPressphp
WordPressでidからリンク、アンカーテキストを自動で設定する
WordPressで記事IDからリンクURLを設定するには、以下のようにすることが多かったのですが、先日、作ったサイトでは、以下のようなコードをコピペする回数が多く、もう少し簡単に使い回したかったので、IDだけ設定して、リンク先のURLも、リンク先ページ名も自動で表示する関数を利用しました。 こんな感じのコードでヘッダーやフッターにリンク設置していた [php]<a href=&qu…
「WordPressでidからリンク、アンカーテキストを自動で設定する」をはてなブックマークに追加

IE9でcss3のtransformが効かない時の解決策

2014年10月30日 web関連HTML5・CSS3
CSS3が使えるようになって、メニューボタンの背景に矢印を表示させることなどが出来るようになりましたが、IEでは効かないものもあります。 背景に矢印を入れる時は、transform: rotate(45deg);のようにborderを回転させるのですが、このtransformがIE9では使えません。 …
「IE9でcss3のtransformが効かない時の解決策」をはてなブックマークに追加

php mb_convert_kanaがうまく動かないとき

2011年07月07日 php
mb_convert_kanaは半角カタカナを全角カタカナに直したり、半角スペースを全角に直したりするときに重宝する関数ですが、環境(サーバ設定かな)によっては、期待通りに動かない場合があるようです。 …
「php mb_convert_kanaがうまく動かないとき」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy