2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPressのtag名を記事タイトルに表示させる方法

Last updated at Posted at 2017-03-24

したいこと

WordPressのtag名を記事タイトルに表示させたい

解決方法

WordPress独自のテンプレートタグ「get_the_tags」を使用してタグデータを取得。
取得したタグデータを、foreachで回して、欲しいタグ名を条件分岐で取得する

完成したコード

PHP
<h1 class="entry-title"><?php the_title(); ?><?php
  $post_tags = get_the_tags();
  if($post_tags){
    foreach($post_tags as $tag){
      if($tag -> name !== 'PR') continue;
      echo '['.$tag -> name.']';
    }
  }
?></h1>

コード解説

1.「get_the_tags」でtagデータを取得して、$post_tagsという変数に値を入れる

<?php
  $post_tags = get_the_tags();

ex)取得できるデータ引用元

9a23351ab8b8193070ecc0b76e70e134.png

2.条件分岐でタグデータがあるか判断する。trueならば中の処理が走る

<?php
  if($post_tags){

3.foreachでタグデータを全て取得する。

<?php
    foreach($post_tags as $tag){

4.取得されたタグデータから、条件分岐で「name」プロパティーの「PR」名が一致する値だけを取得する

  if($tag -> name == 'PR') break; でもいけそうな気がするが未検証。

<?php
   if($tag -> name !== 'PR') continue;

5.echoで表示させる。 

'['.$tag -> name.']' の箇所までが表示部分

$tag -> '['name.']' で書くと表示されない

<?php
   echo '文字列'.$tag -> name.'文字列';

6.改行が入るので注意が必要

開始タグ、終了タグのh1とphpの改行の間に、空欄が入ってしまう。

<h1 class="entry-title"><?php the_title(); ?>
  <?php
    ..........
     ............
      .............
  ?>
</h1>

正しい書き方

<h1 class="entry-title"><?php the_title(); ?><?php
  ..........
   ............
    .............
?></h1>

まとめ

PHPはRubyと比べるとめんどくさい。。です。

コメント

初心者の方には、ペアプロはおすすめだと思います!

理由は、パートナーの、エラー(課題)に対しての解決プロセス(エラー → 課題定義 → 検証)を体感できるから。相手のスピードに追いつこうと試みるので、必然的に同じプロセスを踏もうとするので自然と早くなる感じでです。 (うまく表現できないのですが。。)

プログラミングは、課題解決の連続なので、Σ(゚Д゚;≡;゚д゚)
課題解決プロセスを身に付けたい、スピードアップしたいならペアプロはとても良い!!´⊙ω⊙`

習うより慣れろ。 です。

2
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?