WordPress の投稿記事のカテゴリ名やカテゴリスラッグを取得する方法
WordPressで記事を投稿したときに記事が表示されるページや、トップページの新着情報などのアーカイブを表示する際にカテゴリを表示したい時などに役にたつコードを記述しておきます。
-->以下の様に記述をするとカテゴリ名やスラッグを表示出来ます。
<?php query_posts('posts_per_page=5'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?></pre> <!-- 現在の投稿のカテゴリーIDを取得 --> <?php $cat = get_the_category(); $cat = $cat[0]; ?> <div> <h1><?php the_title(); ?></h1> <p><?php the_time('Y/m/d'); ?></p> <p class="<?php echo $cat->category_nicename; ?>"><?php echo $cat->cat_name; ?></p> <div> <?php the_content(); ?> </div> </div> <?php endwhile; endif; ?> <?php wp_reset_query(); ?>
それでは簡単に解説していきます。
まずはじめにWordpressの投稿記事を表示する為にはまずループを記述します。
<?php query_posts('posts_per_page=5'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php endwhile; endif; ?> <?php wp_reset_query(); ?>
(‘posts_per_page=5’)の部分は投稿記事を5件表示する意味です。
次に記事のタイトルや記事の公開時間、記事の本文を表示する為の記述をします。
<?php query_posts('posts_per_page=5'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?></pre> <div> <h1><?php the_title(); ?></h1> <p><?php the_time('Y/m/d'); ?></p> <div> <?php the_content(); ?> </div> </div> <?php endwhile; endif; ?> <?php wp_reset_query(); ?>
<?php the_title(); ?>は記事のタイトルを表示します。
<?php the_time(‘Y/m/d’); ?>は記事の公開された日付を表示します。
‘Y/m/d’と記述すると「2014/08/05」となります。
表示出来るものを簡単にまとめておきます。
‘Y’・・・西暦表示をします。
‘m’・・・月表示を2桁で表示します。1桁の月の場合は「08」のように「0」が入ります。
‘n’・・・月表示が1桁の時は1桁で表示します。’m’⇒「08」、’n’⇒「8」
‘d’・・・日表示を2桁で表示します。1桁の日の場合は「05」のように「0」が入ります。
‘j’・・・月表示が1桁の時は1桁で表示します。’d’⇒「05」、’j’⇒「5」
‘D’・・・曜日を表示します。
‘h’・・・時間を2桁で表示します。
‘i’・・・分を2桁で表示します。
‘s’・・・秒を2桁で表示します。
全て大文字小文字の判別があるので記述の際には気をつけて下さい。
区切り文字は「/.,」など英語以外に日本語で「月日時分秒」などを使用する事も可能です。
次に<?php the_content(); ?>はWordpressで記事を投稿する際に本文を書いたと思います。その本文の部分を表示するタグです。
ここまででひとまずWordpressで投稿した記事を表示できます。
しかしこのままだと少し物足りないですよね?
カテゴリ名を表示したり、カテゴリを作った際に記入したスラッグを使用して
クラスにスラッグを付与しカテゴリ名を表示する際に色を個別に付けたりなども出来ればいいですよね??
そこで冒頭で記述した下記のコードを使用し記事ごとのカテゴリ情報を取得します。
<?php $cat = get_the_category(); $cat = $cat[0]; ?>
なのど直後に記述すると良いと思います。
次に取得したカテゴリ情報の中からカテゴリ名を表示するには以下の様に記述します。
<?php echo $cat->cat_name; ?></pre> カテゴリスラッグを表示するには「cat_name」の部分を「category_nicename」に書き換えればスラッグを表示出来ます。 以下のような記述にするとカテゴリ名を表示する要素にカテゴリスラッグをクラスに付与し、個別のスタイルを定義する事が出来ます。 <p class="<?php echo $cat->category_nicename; ?>"><?php echo $cat->cat_name; ?></p>
これでカテゴリ名を表示する<p>の要素にカテゴリスラッグをクラスとして定義出来ます。
いかがでしょうか?
Wordpressを使用した案件ではかなり需要が高いので、振返りも含めて書きました。
Wordpressででブログをしている方などにも便利だと思いますよ!
まあでも初歩的な事なので知っている方も多いと思いますが、、、笑
でわでわ
Goog bye