この記事は【2023年9月12日】が最後の更新のため、記事の内容が古い可能性があります。
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');