読者です 読者をやめる 読者になる 読者になる

ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

デフォルトのカテゴリ説明文を固定ページに出力する@WordPress

WordPressカスタマイズ
Sponsored Links

WordPressのデフォルトのカテゴリに設定できる「説明」について、category.phpでの出力例はデフォルトのカテゴリ説明文をカテゴリページに出力する@WordPressに残しましたが、これはタイトル通り、category.phpでないと使えません。

http://blog.showzine.co/entry/explanation-about-category_display

blog.showzine.co

固定ページで使う必要があったので、その例を以下に残します。

建築施工会社さんのサイトがあり、その現場レポートを投稿で、デフォルトのカテゴリを各現場として使う例になります。

現場レポートというコンテンツを用意し、各現場(カテゴリ)を一覧表示する固定ページを独自に用意しておきます。

この固定ページで各現場(カテゴリ)の説明文を出力しています。

<?php
$categories = get_terms("category", "exclude=1 /* 未設定カテゴリは除外 */ );
    foreach($categories as $value):
        $cat_data = get_option('cat_'.intval($value -> term_id));
?>

<div class="box level1">
    <div class="inner-box">
        <h2><a href="<?php echo get_category_link($value); ?>"><?php echo esc_html($value->name) /* 現場名(カテゴリ名) */ ?></a></h2>
        <dl class="posted">
            <dt><dfn>現場レポート</dfn></dt>
            <dd class="desc">
            <?php // カテゴリの説明(デフォルト)を表示
            $cat_description = $value->description;
            echo mb_strimwidth(($cat_description), 0, 54, "", utf8); ?>
            </dd>
            
        </dl>
    </div>
<!-- // .level1 --></div>
<?php endforeach; ?>

get_terms()関数を使います。タームにデフォルトのカテゴリを指定する「category」を記述し、WordPressに最初から存在する「未設定」カテゴリは出力されないようにexcludeでカテゴリIDを指定して除外します。

get_terms()関数で全てのカテゴリ情報を取得し、$categoriesに格納します。この$categoriesには配列型で全カテゴリの情報が格納されているので、foreach文でループさせてそれぞれの値を取り出します。

カテゴリごとの情報を取得したいのでget_option()関数のオプションで$valueにterm_idを指定し、各カテゴリの持つ情報を$cat_dataに格納します。あとは出力したい項目をパラメータで指定($value->nameや$value->descriptionというふうに)します。

上記の例ではついでに説明文の文字数制限をして丸める処理をしています。PHPのmb_strimwidth()関数を使っています。

本格ビジネスサイトを作りながら学ぶ WordPressの教科書 Ver.4.x対応版

本格ビジネスサイトを作りながら学ぶ WordPressの教科書 Ver.4.x対応版