トップページ記事一覧でのタグ表示方法

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など トップページ記事一覧でのタグ表示方法

  • このトピックには12件の返信、2人の参加者があり、最後にHidekichiにより10年、 11ヶ月前に更新されました。
12件の返信スレッドを表示中
  • 投稿者
    投稿
    • #30675
      あきひと
      ゲスト

      ネットでも検索したのですが、わからなかったので質問させてください。

      Simplicityテーマのトップページ表示にて、記事一覧でカテゴリーが表示されますが
      タグは表示されません。

      つきましては、以下の場所に記事のタグを表示させたいのですが、方法はありますでしょうか?

      大変、初心者な質問とは存じますが、分かる方がいらっしゃいましたら教えて頂ければ幸いです。
      宜しくお願い致します。

    • #30676
      あきひと
      ゲスト

      申し訳ありません。
      参考はこちらになります。
      参考

    • #30678
      あきひと
      ゲスト

      参考

    • #30692
      Hidekichi
      ゲスト

      the_tags()でいけます。

      使い方は、

      <?php the_tags( $before, $separator, $after ); ?>

      って感じで、
      <?php the_tags("<ul class='test'><li>",'</li><li>','</li></ul>'); ?>
      なんて事をすれば、リストで書き出して、かつそれを.post-meta .test{ …以下略… }でデザインもできるんじゃなかろうかと。

      デフォルトでは、「タグ: xxxx,yyyyy,zzzz」みたいな感じで書きだされます。$beforeがタグ:で、区切りが,(カンマ)って感じです。

      ちなみに、親テーマentry-card.php内、p class=”post-meta”のブロックの最後に書けばよいのではなかろうかと思います。コメントでpost-metaはここまでのような表記がしてあると思うので、だいたいわかるかと思います。

      wordpress the_tags()で検索すれば、サンプルや使い方等色々出てくるかと思います。

    • #30693
      Hidekichi
      ゲスト

      うぉぉ、しまった。code入れてなかった。
      わいひらさん修正お願いします。

    • #30694
      Hidekichi
      ゲスト

      内容は、

      <?php the_tags("<ul class='test'><li>",'</li><li>','</li></ul>'); ?>

      です。

    • #30707
      アバター画像わいひら
      キーマスター

      修正しておきました。
      bbPressの穴ですねこの不具合。

      >あきひとさん
      編集するテンプレートは、entry-card.phpファイルです。hidekichiさんの書かれた記述をカテゴリの後に追記すると、うまくいくかと思います。

    • #32524
      るか
      ゲスト

      似たようなところで悩んでいて、便乗させていただきます。

      hidekichiさんのコードを入れると、タグは日付の下に表示されます。
      これを日付、カテゴリ、タグと並べることは出来ますか?

    • #32526
      Hidekichi
      ゲスト

      get_the_tagを使って記事IDからタグの情報を取得できます。
      the_tagsが直接タグを吐き出すのに対して、情報だけ取得できるので、それらを加工してechoすることで好きな所に好きなように表示することが可能です。

      参考: http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_the_tags

      ■基本

      <?php
      $posttags = get_the_tags();
      if ( $posttags ) {
        echo "<a href='" . get_ . "'>"
        foreach ( $posttags as $tag ) {
          echo $tag->name . ' '; 
        }
      }
      ?>

      ■ちょっと応用(ループ外、例えばentry-body.phpとかのpost-meta内)

      <span class="tags">
        <?php
        $posttags = get_the_tags();
          if ( $posttags ) {
            foreach ( $posttags as $tag ) {
              $g_tag[] = "<a href='" . get_tag_link($tag->term_id) ."'>" . $tag->name . "</a>";
            }
          }
          echo implode(" | ",$g_tag);
        ?>
      </span>

      こうすれば、「tag | tag | tag」みたいな感じで、リンク付きのタグが出力されます。そのリンクを.tagsというspanで囲んでますから、スタイルシートで.tags aとか、.tags自体にスタイルすることもできます。

      どのような形式で出力したいか、例えばリスト表示ドロップダウン表示、その他諸々といろんな表示方法が考えられます。なので、それに合わせてforeach内の加工をする必要があります。

      何かしらfontawesomeあたりのアイコンをタグの前に入れたいと思えば、
      echo “<span class=’fa fa-xxxx’></span> ” . implode(” | “,$g_tag);
      とかでもいけるでしょうし、

      「|」に色を付けたいと思えば、
      implode(” <span class=’tag_sep’>|</span> “,$g_tag);
      とすれば、スタイルシートで.tag_sepに対してスタイルすればよいわけです。

      どう出力したいかを考えて、そうするにはどうすればよいかの解決をする必要があります。応用が効くだけに面倒ですけどもね。

    • #32527
      Hidekichi
      ゲスト

      わいひらさんの修正が入るまで、コード部分はカッコやクォートがエンティティされていますので、しばしお待ちください。

    • #32539
      アバター画像わいひら
      キーマスター

      #32526のコードを修正しておきました。

    • #32546
      るか
      ゲスト

      早速のお答えありがとうございました!

      エラーを吐くのですが、タグのない記事に吐いているので、恐らくタグがない場合の指示が必要なんですね。
      もう少し調べてみたいと思います。

    • #32549
      Hidekichi
      ゲスト

      あぁ、タグがないというより、せっかくのその部分の処理の外にechoおいてしまってました(笑)

      foreachの閉じカッコのすぐ下にecho部分持っていけば、ページにタグが無い場合、配列の処理は無視されます。

      if ( $posttags ) { //ここであるなし判断、つまりはtrueの時だけこの中を処理
        foreach {
          //配列の処理
        }
        echo //出力
      } // if終わり

      こんな感じでどうでしょう?

      ってことはタグがない時は、それ用の処理もできるということです。

      if {
        foreach(){}
        echo ...
      } else {
        //タグがない時の処理
        echo "この記事にタグはついてません";
      }

      こんな感じです。

12件の返信スレッドを表示中
  • フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。
スポンサーリンク
アドセンス(大)
アドセンス(大)