WordPressのカスタム投稿の追加

投稿日:2013年10月8日

WordPressでのサイト構築に当たり、随時更新していく記事が1種類だけの場合は、初期設定のWordPressでも良いかもしれませんが、
更新していく記事が複数種類ある場合(ex. スタッフ日記、店長日記、店舗ごとのニュース)、
カスタム投稿の設定をすると大変便利です。

a

プラグインを使う方法もありますが、今回はfunctions.phpで設定する方法を紹介します。

functions.phpの任意の場所に以下のコードを書きます。

カスタム投稿の追加


add_action('init', 'create_example');
function create_example(){
  $labels = array(
    'name' => 'サンプル投稿', 
    'singular_name' => 'サンプル投稿',
    'add_new' => 'サンプル投稿を追加',
    'add_new_item' => '新しいサンプル投稿を追加',
    'edit_item' => 'サンプル投稿を編集',
    'new_item' => '新しいサンプル投稿',
    'view_item' => 'サンプル投稿を編集',
    'search_items' => 'サンプル投稿を探す',
    'not_found' => 'サンプル投稿はありません',
    'not_found_in_trash' => 'ゴミ箱にサンプル投稿はありません',
    'parent_item_colon' => ''
  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'has_archive' => true,
    'supports' => array( 'title', 'editor' )
  );
  register_post_type('example', $args);
}

// カスタムタクソノミーを登録
register_taxonomy(    'example_tax', // カスタムタクソノミー名
  'example', // 投稿タイプの指定   
  array( 'hierarchical' => true, // trueの場合はカテゴリーのように表示
    'update_count_callback' => '_update_post_term_count',
    'label' => 'カテゴリー',
    'singular_label' => 'カテゴリー',
    'public' => true,
  )
);

// カスタムタクソノミーを登録
register_taxonomy(    'example_tag', // カスタムタクソノミー名
  'example', // 投稿タイプの指定   
  array( 'hierarchical' => false, // falseの場合はタグのように表示
    'update_count_callback' => '_update_post_term_count',
    'label' => 'タグ',
    'singular_label' => 'タグ',
    'public' => true,
  )
);

以下でそれぞれの部分について説明します。

● 配列 $labels の中身について
カスタム投稿に関連して表示されるテキストの設定を行う部分です。
テキストなので、入力に間違いがあってそのまま表示されます。
それぞれ初期設定の値があるので、実際はここで設定しなくてもカスタム投稿としては成り立ちます。

● 配列 $args の中身について

  • label : 上で配列 $labels を設定していれば、それを指定。なので実際のラベルテキストの設定はここで行うわけですね。
  • public : 通常の「投稿」と同じような振る舞い(ユーザインターフェースがあったり、検索結果に反映されたり)をするかどうかを設定します。
  • has_archive : アーカイブを持つかどうかを設定します。
  • supports : カスタム投稿の記事を書くときに、どのボックスを表示しておくかを設定します。この例では、「タイトル」と「エディター」しか表示しないシンプルなものです。

● register_post_type について
実際にカスタム投稿を作成する関数です。

● register_taxonomy について
カスタムタクソノミーの作成を行う関数。通常投稿の「カテゴリー」や「タグ」と同様の振る舞いをするものを設定できます。
ポイントは、「hierarchical」の値。これを true にすればカテゴリー、 false にすればタグ、と同様の振る舞いをするタクソノミーを設定できます。

詳しい説明は、WordPressの公式ドキュメントのregister_post_type関数のページを見ると良いと思います。

南本貴之

関連記事

カテゴリー: PHP, WordPress
  • LINEスタンプ販売中!「カフィーノ♪」 BRISKオリジナル