2018年08月01日
Docker for Mac を使って WordPress の...
2018年07月29日
Docker for Mac のインストール
2018年07月08日
Docker 便利コマンドあれこれ
2018年07月08日
オライリーの Docker 本(Docker Up &...
2018年07月05日
iPad mini 2 を購入しました
2018年07月04日
Docker で Jenkins するときのあれこれ

HOME > カテゴリ(WordPress)の記事

WordPress でカテゴリ一覧を取得する場合は get_terms() じゃなくて get_categories() を使った方がラクチン



先日、wp_list_categories() を使わずに get_terms() でカテゴリ一覧を表示するというエントリをしましたが、その後いろいろと見ていたら、カテゴリ一覧を取得するだけなら、get_terms() じゃなくて、get_categories() を使う方が簡単。

先日のエントリでは、カテゴリ一覧を取得するために、

<?php
  function get_all_category_all() {
    if ( ! $cat_all = wp_cache_get( ‘all_category_all’, ‘category’ ) ) {
      $cat_all = get_terms( ‘category’, ‘fields=all&get=all’ );
      wp_cache_add( ‘all_category_all’, $cat_all, ‘category’ );
    }
    return $cat_all;
  }
?>

という関数をつくってカテゴリ一覧を取得していましたが、わざわざそんな関数を作らなくても、get_categories() という関数がありました。なので先日のエントリで、

<?php
  $terms = get_all_category_all();
  foreach ($terms as $term) { ?>
      <li><a href=”<?= get_category_link($term->term_id); ?>”>
        <?= $term->name; ?>
      </a></li>
<?php } ?>

としていた部分の、

  $terms = get_all_category_all();

は、

  $terms = get_categories();

にしてしまえば、自作の関数(get_all_category_all())なんかいりませんね。

結局 get_terms() は何なのさ?

結局、get_categories() は、内部で get_terms() を呼び出しているようです。get_terms() はタクソノミ全般を扱う関数のようで、デフォルトで実装されている「カテゴリ」というタクソノミに限定せず、タクソノミ全般を扱うための関数みたい。

get_categories() は get_terms() のラッパー。

なので、標準のタクソノミ(カテゴリ)を使う分には、get_terms() じゃなくて、get_categories() を使う方が簡単ですね。

でわでわ。





「WordPress でカテゴリ一覧を取得する場合は get_terms() じゃなくて get_categories() を使った方がラクチン」に頂いたコメント

  1. […] カテゴリ一覧を出力させるコードの参考にさせていただいた。この記事のあとにWordPress でカテゴリ一覧を取得する場合は get_terms() じゃなくて get_categories()…という記事を書いておられていて、確かにその通りなのだけど、rel属性が付加されて、その属性値(category tag)だとHTML5でinvalidになってしまう。WordPressのカテゴリーリストからrel属性をカットする | LD.ymst.net | 郡山市でホームページを制作している人のブログのコードをfunctions.phpに書くと消せるらしいけど、当時function.php(sが抜けてる)というファイル名で編集しており、全然反映されねー!ってなり、get_terms()で出力させている。パフォーマンスに影響を与えないのであれば、このままでいいかなと思っている。ちなみに、現時点で当サイトではfunctions.phpは使用していない。 […]

  2. […] ■WordPress でカテゴリ一覧を取得する場合は get_terms() じゃなくて get_categories() を使った方がラクチン http://dev.ontheroad.jp/archives/2805 […]

この記事にコメントする





Copyright © 2012 - 2013 MacBook Air とWordPressでこうなった All rights reserved
Designed by Theme Junkie. Powered by WordPress.