Menu
テーマ切り替え

独自のカスタム投稿タイプを追加する方法

wordpress_article_0613_3

WordPressの通常の投稿と別に分けて記事を作成したい場合に便利な「カスタム投稿タイプ」。プラグイン でも機能を追加することができますが、テーマにちょっと記述するだけで簡単に使用することができます。 自分が仕事でよくやるのは、通常の投稿はブログやお知らせなどで使用し、商品紹介やお店情報など別のコンテンツを書きたい場合にカスタム投稿を使用しています。 目的によって投稿する場所を変えることによって更新し易くなります。

カスタム投稿の追加方法

functions.phpに下記のように追加してください。

/* ショップ投稿 */
add_action( 'init', 'create_post_type' );

function create_post_type() {
  register_post_type(
    'shop',
    array(
      'labels' => array(
      'name' => __( 'お店情報' ),
      'singular_name' => __( 'お店情報' )
    ),
      'public' => true,
      'has_archive' => true,
      'menu_position' => 5,
      'supports' => array('title','thumbnail','custom-field-template')
    )
  );
}

shopやshop-catを適した名称(英数文字)に変更しお使いください。

‘public’ このカスタム投稿タイプをフロントエンドでの公開をするか設定する項目になります。

‘has_archive’ パーマリンクの設定がデフォルト以外の場合やアーカイブページを表示させる場合に。

‘menu_position’ ダッシュボードのメニューの表示順序。

‘supports’ 投稿時に編集画面で使用する項目を設定します。初期値はtitle(記事タイトル)editor(記事本文)になります。

他には下記のような項目があります。

  • author(作成者)
  • thumbnail(アイキャッチ )
  • excerpt(抜粋記事)
  • trackbacks(トラックバック)
  • custom-fields(カスタムフィールド )
  • comments(ディスカッション)
  • revisions(リビジョン)

上記のサンプルはお店情報を投稿する際に使用したままを載せているので、supportsの部分を削除するかeditor等を追加しましょう。

function.phpなどに追加する場合は念のためバックアップを取っておいてください。

カスタム投稿タイプの投稿した記事をRSSに含める

カスタム投稿タイプの記事はそのままではRSSに含まれません。以下をfunction.phpに追加してください。「shop」の部分を設定したスラッグ名に変更してください。

//カスタム投稿タイプの記事が投稿されたら10分後にping送信
function shop_pings_at_publish( $post_id ) {
    wp_schedule_single_event( strtotime( '+10 min' ), 'do_pings', array( $post_id ) );
}
add_action( 'publish_shop', 'comic_pings_at_publish', 10);

//RSSにカスタム投稿タイプの記事を追加
function myfeed_request($qv) {
  if (isset($qv['feed']) && !isset($qv['post_type']))
    $qv['post_type'] = array('shop');
  return $qv;
}
add_filter('request', 'myfeed_request');
RU DESIGN
AUTHOR

RU DESIGN

個人開発者として、Webサイト制作やAIを活かした開発に取り組んでいます。このブログでは、私が実際に試して「これは使える!」と思った技術や、自作の便利ツールをシェアしています。一緒に技術を楽しんでいきましょう!

この記事をシェア:

関連記事