• 解決済 keynyon

    (@keynyon)


    お世話になっております。

    Wodpressを始めて半年程の者です。
    自作テーマでサイトを作成しております。
    titleタグを、投稿やページごとに内容を変更して出力したいと考えています。

    トップページや、カスタム投稿のアーカイブ、タクソノミーのアーカイブについては
    うまく表示できたのですが、カスタム投稿のシングルページの表示がうまくできません。

    「news」というカスタム投稿タイプのタイトルを「投稿タイトル|サイト名」
    と表示したいのですが、投稿タイプがうまく取得できないようです。

    ソースは以下のとおりです。

    
    <?php if(is_home() || is_front_page()):
    bloginfo('description'); echo "|"; bloginfo('name'); ?>
    ・・・省略・・・
    <?php elseif('news' == get_post_type()):
    wp_title('|', true, 'right'); bloginfo('name'); ?>
    <?php endif; ?>
    

    知識がなく、大変恐縮ですが、ご教示いただけますと幸いです。
    どうぞよろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • is_singular() を試されましたか?
    https://wpdocs.osdn.jp/関数リファレンス/is_singular

    トピック投稿者 keynyon

    (@keynyon)

    gblsm様

    ご教示ありがとうございます。
    is_singular() も試したのですが、ダメでした。
    記載が足らず申し訳ございません。

    何か記述にミスがありますでしょうか。

    トピック投稿者 keynyon

    (@keynyon)

    追記で申し訳ございません。

    記述順を変更し、試しに
    <?php elseif(is_singular(‘archives’)):
    echo ‘aaaa’; echo’|’; bloginfo(‘name’);?>
    と記述したところ、
    <title>aaaa|サイト名</title>
    と出力されましたので、投稿タイプは取得できているようです。

    <?php elseif(is_singular(‘archives’)):
    wp_title(‘|’, true, ‘right’); bloginfo(‘name’); ?>
    こちらですと、サイト名のみ表示されます。

    また、固定ページが未作成だったのですが
    作成してみたところ、やはりタイトルが取得できませんでした。

    wp_title()が非推奨になったという記事をいくつか見かけたのですが
    wp_title()では、取得できないのでしょうか?

    同じようにページ内のh1タグにもタイトルやサイト名を表示させたいのです。
    ご教示くださいますと幸いです。

    @keynyon さんの自作テーマは私のところで試すことができません(提供しますと言わないでくださいね)。同様のカスタマイズを行ったことがありませんので、説明するためには、Twenty Sixteen などの標準的なテーマでカスタム投稿の個別投稿ページのタイトルを実際にカスタマイズしてみることになります。差し支えなければご自身で(Twenty Sixteen などを使ってカスタマイズを)試してみてはいかがですか。それを自作テーマへ応用すると良いと思います。

    wp_title() はまだ非推奨になっていません。WordPress 4.4 の時、なりかかりましたが時期尚早ということで、そうなりませんでした。

    トピック投稿者 keynyon

    (@keynyon)

    gblsm様

    いろいろとご教示いただきありがとうございます。
    デフォルトテーマで試してみたいと思います。

    wp_title() はまだ非推奨ではないのですね。
    知識不足でお恥ずかしい限りです。

    どうもありがとうございました。

    Twenty Sixteen の子テーマを作り、single.php に下記コードを加えたところ、カスタム投稿タイプのタイトルを表示できました。

    <?php
      if ( is_home() || is_front_page() ) :
        bloginfo( 'description' ); echo "|"; bloginfo( 'name' );
      elseif ( is_singular( 'カスタム投稿タイプ' ) ) :
        echo wp_title( '|', true, 'right' ); bloginfo( 'name' );
      else :
        echo '他の投稿タイプ';
      endif;
    ?>
    

    基本的なところに戻りますが、カスタムの個別投稿にタイトルは入力されているのですよね。また使われているテンプレートは合っていますよね。

    • この返信は9年、 9ヶ月前にgblsmが編集しました。

    @mypacecreator さんのブログが参考になりそうです。ブログではカスタムフィールドをタイトルへ入れています。
    http://mypacecreator.net/blog/archives/2943

    トピック投稿者 keynyon

    (@keynyon)

    gblsm様

    引き続きご教示いただきありがとうございます。

    参考ページを拝見いたしました。
    functions.phpを確認したところ、

    add_filter( 'wp_title', 'my_wp_title');
    

    と記載されているのをみつけて
    こちらを削除してみたところ、

    <?php elseif(is_singular('news')):
    wp_title('|', true, 'right'); bloginfo('name'); ?>

    で「記事タイトル|サイトタイトル」と表示できました。
    固定ページも同様です。

    以前作成したfunctions.phpを流用しておりましたので
    記述されていることに気がつきませんでした。

    お時間とらせてしまい、申し訳ございませんでした。
    ご教示いただき誠にありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)

トピック「titleタグを条件分岐して出力する方法」には新たに返信することはできません。