人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ワードプレスで質問です。

記事投稿の際、<!--more-->ではなく<!--nextpage-->を使う機会が多いのですが、ウェブマスターから重複タイトルと重複descriptionで指摘を受けました。プラグインのheadspaceでいろいろ操作しても解消できなかったので他の対処方法をアドバイスいただけると幸いです。


●質問者: ak
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●100ポイント ベストアンサー

HeadSpaceによる出力は行われない事が前提条件になります。
問題が検出される種類(※投稿なら「Posts」)の「ページタイトル」と「Description(説明文)」の欄は空欄にして置いてください。
※各投稿の編集画面でも設定をしないようにしてください。

まずはメタディスクリプションを出力する為に、次のコードを「functions.php」に追加します。(※分割されたページごとに投稿本文を抜き出してメタディスクリプションに設定します。)

function descs_for_posts() {
if( !is_admin() && is_single() ) {
global $post, $page;
// タイトルや更新日も含める場合は、以下の2行を有効にして連結するなどして整形します。
// $title = $post->post_title;
// $date = $post->post_date;
$content = $post->post_content;
if( false !== strpos( $content, '<!--nextpage-->' ) ) {
$num = $page ? $page - 1 : 0;
$split_contents = explode( '<!--nextpage-->', $content );
$content = $split_contents[$num];
}
// 次行で文字数を制限しています。任意の数値に変更してください。
$desc = mb_substr( strip_tags( $content ), 0, 140 );
$desc = preg_replace( '/\n/', '', $desc );
echo '<meta name="description" content="' . $desc . "\" />\n";
}
}
add_action( 'wp_head', 'descs_for_posts' );


・投稿記事一覧で文字数を制限して表示
http://crushpow.com/archives/491.html


タイトルについてですが、利用しているテーマの「header.php」の記述はどうなっているでしょう?
HeadSpaceによる出力ではなく、テーマによる出力で重複は解消しているかもしれませんので確認してみてください。

WordPressデフォルトのテーマ「Twenty_Eleven」および「Twenty_Ten」では次のようにしてアーカイブや分割された投稿ページで2ページ目以降のタイトルにページ数を付加しています。

<title><?php
/*
 * Print the <title> tag based on what is being viewed.
 */
global $page, $paged;

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

// Add the blog name.
bloginfo( 'name' );

// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";

// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', 'twentyeleven' ), max( $paged, $page ) );

?></title>



※「Twenty Thirteen」および「Twenty Twelve」では次のようになっていますが、「functions.php」で同様の処理をして変更している為、同様にページ数が付加されます。

<title><?php wp_title( '|', true, 'right' ); ?></title>

もし利用しているテーマでページ数が付加されたタイトル表示になっていない場合は、上記のようなタイトルタグの出力箇所を次のコードに変更してみてください。

<title><?php
/*
 * Print the <title> tag based on what is being viewed.
 */
global $page, $paged;

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

// Add the blog name.
bloginfo( 'name' );

// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";

// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( 'Page %s', max( $paged, $page ) );

?></title>


※デフォルトのテーマの記述をほぼそのまま利用しています。(ページの表記でテーマの言語ファイルを利用しますが、言語ファイルを利用しない記述に変更しています。)


akさんのコメント
rouge_2008さんいつも大変ありがとうございます。 ほんとうにわかりやすく、また詳しく、PHPを最近勉強している私にとってものすごいためになります。 今週はドタバタしていて週末あたりにゆっくりとスクリプトをみながら構築してみたいと思います。 結果についてはこちらのコメについきいたします。 ありがとうございました。

akさんのコメント
かなり遅くなりましたが、重複タイトル解消いたしました。 誠にありがとうございました! 恐れ入ります。 descriptionに関しては、functionに記述するだけでよい、という訳ではないという認識でよろしいでしょうか。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ