サポート » 使い方全般 » 記事が複数ページになる時とならない時でdiscriptionを変えたい

  • 解決済 merusi

    (@merusi)


    いつもお世話になっております。
    wordpressバージョン3.8と賢威というテンプレートを使っています。

    記事を<!–nextpage–>で分けた時と分けない時で
    discriptionの内容を変えたくて<head>内の記述を
    下記のようにしてみましたが、どうしても上手くいきません。

    やりたいことは記事が複数ページに分かれる時には賢威の
    get_description_keni()を利用し、トップページや1ページしかない場合、
    複数ページの1ページ目の場合には、all in one seoの
    discriptionを使って、投稿ページで設定したdiscriptionを
    表示することです。

    下記の記述だと<meta name=”description” content=””>となり、
    どのページでも何も表示されない状態です。
    どこをどう変更したら希望の表示ができるでしょうか。

    <?php // 複数にわたるページの一部ではない場合 (または複数にわたる投稿・固定ページの最初のページの場合)
    $paged = $wp_query->get( ‘paged’ );
    if ( ! $paged || $paged < 2 ) { ?>
    <meta name=”description” content=”<?php echo get_post_meta($post->ID,’description’,true); ?>” />
    <?php }
    else { ?> // 複数にわたるページの一部である場合
    <meta name=”description” content=”<?php echo get_description_keni(); ?>” />
    <?php }
    ?>

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • おそらく、header.phpの中で編集されているものと思いますが、
    get_header()という関数の中でheader.phpはincludeされるので、$wp_query等のグローバル変数を使うには、

    global $wp_query;

    を宣言する必要があります。
    また、pagedは、アーカイブページ(categoryとかtagとか年月アーカイブとか)等での現在のページを示すものです。<!–nextpage–>などで分割されたモノであれば、

    $wp_query->get("page");

    で取得できます。

    また、パラメーターを取得するのは、$wp_query->get() より、get_query_var()を使った方が、ベターです。

    ですので、おそらくこんな感じでは無いでしょうか。

    <?php // 複数にわたるページの一部ではない場合 (または複数にわたる投稿・固定ページの最初のページの場合)
    if ( get_query_var( "page" ) < 1 ) { ?>
    	<meta name="description" content="<?php echo get_post_meta($post->ID,'description',true); ?>" />
    <?php }
    else { ?> // 複数にわたるページの一部である場合
    	<meta name="description" content="<?php echo get_description_keni(); ?>" />
    <?php }
    ?>
    トピック投稿者 merusi

    (@merusi)

    Toro_Unit様

    ご回答いただきありがとうございます。

    教えていただいたコードを記述したところ、うまくいきました!
    $wp_queryは宣言が必要だったんですね。
    今後もっと勉強しようと思います。

    助かりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「記事が複数ページになる時とならない時でdiscriptionを変えたい」には新たに返信することはできません。