目次
こんにちは、後藤です。
今回は、WordPressでカスタム投稿を追加する方法を紹介しようと思います。
カスタム投稿とは?
カスタム投稿とは、「投稿」や「固定ページ」とは違った投稿タイプのことです。
1つのホームページ内で、性質の異なる複数のコンテンツを扱いたい場合にカスタム投稿を使用します。
例えば、新着情報やニュースなどは「投稿」で扱い、お客様の声は「お客様の声というカスタム投稿」で扱うといったことが可能です。
カスタム投稿を追加する
カスタム投稿を追加するには、function.phpにコードを追加する必要があります。
以下のようなコードを追加します。
(例)お客様の声(post_type:voice)を追加する場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
add_action( 'init', 'register_cpt_voice' ); function register_cpt_voice() { $labels = array( 'name' => __( 'お客様の声', 'voice' ), 'singular_name' => __( 'お客様の声', 'voice' ), 'add_new' => __( 'お客様の声を追加', 'voice' ), 'add_new_item' => __( '新しいお客様の声を追加', 'voice' ), 'edit_item' => __( 'お客様の声を編集', 'voice' ), 'new_item' => __( '新しいお客様の声', 'voice' ), 'view_item' => __( 'お客様の声を見る', 'voice' ), 'search_items' => __( 'お客様の声検索', 'voice' ), 'not_found' => __( 'お客様の声が見つかりません', 'voice' ), 'not_found_in_trash' => __( 'ゴミ箱にお客様の声はありません', 'voice' ), 'parent_item_colon' => __( '親お客様の声', 'voice' ), 'menu_name' => __( 'お客様の声', 'voice' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'description' => 'お客様の声', 'supports' => array( 'title', 'excerpt', 'thumbnail', 'custom-fields' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post' ); register_post_type( 'voice', $args ); } |
上記のコードをコピペして追加する際には、「お客様の声」の部分と「voice」の部分を変更してください。
例えば、よくある質問を追加したい場合は、「よくある質問」と「faq」に変更するといった感じです。
次に、$argsの中の項目について解説していきます。
labels
管理画面の各項目に表示するラベル。
連想配列で「’項目’ => __( ‘値’, ‘post_type’ ),」と記述します。
項目が多くなるので、別途、$labelsの中に項目を記述しています。
以下にlabelsに渡す連想配列の内容を解説します。
name:カスタム投稿タイプ名の複数形
singular_name:カスタム投稿タイプ名の単数形
add_new:メニューの「新規」の位置に表示するラベル
add_new_item:カスタム投稿の新規作成ページの左上に表示されるタイトル
edit_item:カスタム投稿編集ページの左上に表示されるタイトル
view_item:カスタム投稿編集ページの「○○を表示」ボタンのラベル
search_items:カスタム投稿一覧ページの検索ボタンのラベル
not_found:カスタム投稿を追加していない状態で、カスタム投稿一覧ページを開いたときに表示するメッセージ
not_found_in_trash:ゴミ箱にカスタム投稿がない状態で表示されるメッセージ
parent_item_colon:「親の項目」に表示するラベル
menu_name:メニューに表示するラベル
hierarchical
trueを指定すると個々のカスタム投稿に親子関係を持たせる
falseを指定すると親子関係なし
デフォルト値:false
description
カスタム投稿タイプの説明
supports
カスタム投稿を編集するページでサポートする機能を選択できます。
配列で記述します。
title:タイトル
excerpt:抜粋
thumbnail:サムネイル
custom-fields:カスタムフィールド
editor:エディタ
author:作成者
trackbacks:トラックバック
comments:コメント
revision:リビジョン
page_attributes:並び順
post-formats:投稿フォーマット
public
trueを指定するとカスタム投稿タイプのデータを外部に公開する
falseを指定すると内部だけで利用
デフォルト値:false
show_ui
trueを指定すると管理画面に入力用のユーザーインターフェースを追加
falseを指定すると追加されない
デフォルト値:publicに指定した値
show_in_nav_menus
trueを指定するとカスタムメニューでこのカスタム投稿を扱える
falseを指定すると扱えない
デフォルト値:publicに指定した値
publicly_queryable
trueを指定するとフロントエンドで post_type クエリを実行可能にする
falseを指定すると実行不可
デフォルト値:publicに指定した値
exclude_from_search
trueを指定するとサイト内検索からこのカスタム投稿タイプを除外する
falseを指定すると除外しない
デフォルト値:publicに指定した値の逆
has_archive
trueを指定するとこのカスタム投稿のアーカイブを使用可能にする
falseを指定すると使用不可
デフォルト値:false
query_var
このカスタム投稿に使用する query_var キーの名前を指定
trueを指定すると「WordPress アドレス/?カスタム投稿タイプ名=個々のカスタム投稿のスラッグ」でカスタム投稿のページを表示
falseを指定すると「WordPress アドレス/?post_type=カスタム投稿タイプ名&name=個々のカスタム投稿のスラッグ」でカスタム投稿のページを表示
文字列を指定すると「WordPress アドレス/?文字列=個々のカスタム投稿のスラッグ」でカスタム投稿のページを表示
デフォルト値:true
can_export
trueを指定するとこのカスタム投稿をエクスポート可能にする
falseを指定するとエクスポート不可
デフォルト値:true
rewrite
このカスタム投稿のパーマリンクを指定
trueを指定するとスラッグにpost_typeを使用
デフォルト値:true
任意のパーマリンクにするには連想配列で指定します。
以下に連想配列に指定する項目を解説します。
slug:post_type以外のスラッグを指定可能
with_front:パーマリンク設定を適用するか真偽値で指定
pages:ページ送りに対応するか真偽値で指定
capability_type
このカスタム投稿の権限を指定
デフォルト値:post
終わりに
今回は、カスタム投稿の追加の仕方と指定する項目について、自分の勉強を兼ねて解説しました。
解説するにあたりいろいろ調べたりしましたが、まだまだ完全に理解できていない部分があったり、理解するのに時間がかかった部分がありました。
知識を自分のものにできるよう、これからも勉強に励んでいきます。