重複防止 記事タイトルが同じだったら タイトルとディスプリクションが被る件

だいぶスキル上がったなjsの本よんだでかな
正規表現も学ぼう

分岐準備メタタグ前に

<?php
//シングルでタイトルが同じ記事が合った場合-2とかスラッグにつくが、the_title wp_titleにはつかないのでディスプリクション・タイトルが重複するのを防ぐ
if (is_single()){//シングルなら
$dd_title = urldecode ($slug_name = $post->post_name);// スラッグを取得
//echo $dd_title;
$keywords = preg_split("/[-]+/", $dd_title);//phpスプリット - にて
//print_r($keywords);
$last = end($keywords); //配列の最後を取得する ほにゃらら-2 $keywords[0]がほにゃらら $keywords[1]が2
//echo $last;
if (ctype_digit($last)) {//ケツが数字なら
//echo $last;
}
}
?>

ディスプリクションでは

<?php elseif(is_single()): ?><?php the_title(); ?><?php if (ctype_digit($last)) ://ケツが数字なら つまりタイトルが重複 ?><?php echo $last; endif ?> | 

タイトルでは

global $page, $paged;

	if (is_single())://シングルなら
//分岐準備はメタディスプの前に書いてある
if (ctype_digit($last)) ://ケツが数字なら つまりタイトルが重複	
wp_title( ''.$last.' | ', true, 'right' ); //数字を差し込む
else://普通
wp_title( ' | ', true, 'right' );	
endif;
	else:

	wp_title( '|', true, 'right' );
	
	endif;

重複防止 カテゴリのスラッグの方をディスプリクション/タイトルに入れる場合 デコードして 

ビシューで ブログ納入実績カテゴリ と 納入実績のタイトルとディスプリクションがかぶった

解りやすく カテゴリを納入実績としてスラッグをブログ納入実績
としたため

対策 

ディスプリクション&タイトルで入れる文字をスラッグにする

if(is_category()): echo urldecode ($tax_slug = get_term_by( 'name', single_term_title( '', false ), 'category' )->slug)


global $page, $paged;
	
	
	if (is_category()): 
	echo urldecode ($tax_slug = get_term_by( 'name', single_term_title( '', false ), 'category' )->slug);
	echo ' | ';
	
	else:

	wp_title( '|', true, 'right' );
	
	endif;

デコードしないと文字化けする

http://php.net/manual/ja/function.urldecode.php

タクソノミーでも行ける
http://elearn.jp/wpman/function/get_term_by.html

ディスプリクションにカスタムフィールドの文字を指定数だけ入れる ソースを改行させない

<META name="description" content="
<?php echo mb_substr( str_replace(array("\r\n","\r","\n"),'',strip_tags(get_post_meta($post->ID,"プロフィール",true))), 0, 120); 
//ソースを改行させない カスタムフィールドの文字を指定数だけ入れる?>"> 

ディスプリクションのキーワードにタグ名とターム名を入れる

<META name="keywords" content="<?php //ターム名リンク無しで取得
$terms = wp_get_post_terms( $post->ID, 'genre' ); //分類で設定した名称
$names = array();
     echo ""; //前の文字
     foreach ( $terms as $term ) {
          $names[] = $term->name;
     }
     echo implode( ',', $names ); //区切り文字を指定
?><?php
$terms = wp_get_post_terms( $post->ID, 'chiiki2' ); //分類で設定した名称
$names = array();
     echo ","; //前の文字
     foreach ( $terms as $term ) {
          $names[] = $term->name;
     }
     echo implode( ',', $names ); //区切り文字を指定
?><?php //タグ名リンク無しで取得
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo $tag->name . ',';
}
}
?>">