PHPもWordPressも全然知らないのにたまに触らないといけない状態が来てしまってつらい。
WordPressの投稿は、「通常の投稿」「固定ページ」などのように複数の種類に分けられています。この投稿の種類のことを、post type(投稿タイプ?)と呼ぶようです。今回はこ のpost typeを新たに登録する必要に迫られたので、行ったことのメモを残しておきます。
お試し環境構築
version: '3'
services:
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_PASSWORD: hogehoge
volumes:
- /path/to/my/wordpress:/var/www/html
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: hogehoge
このようなdocker-compose.yml
を作った後、docker-compose up
してlocalhost:8080
から初期設定を適当に行えば、いい感じのWordPress環境が完成しているはずです。
Post typeの定義
post typeの定義は、functions.php
で行うのが一般的なようです。functions.php
はwp-content/themes/(テーマ名)/
にあるので、これを開き、以下のようにpost typeの定義を行います。
add_action('init', 'register_my_post_type');
function register_my_post_type() {
register_post_type(
'my-post-types', // 投稿タイプの識別子
array(
'labels' => array(
'name' => __('my-posts'), // 投稿タイプ名(複数形)
'singular_name' => __('my-post') // 投稿タイプ名(単数形)
),
'description' => 'example post type', // 投稿タイプの説明
'exclude_from_search' => false, // 検索結果に表示するかどうか
'public' => true
)
);
}
引数の詳細については、以下を参照:
functions.php
の編集後WordPressの管理画面を開くと、先ほど追加したpost typeがサイドメニューに追加されていることがわかります。
独自のpost typeの記事の投稿や編集は、このサイドメニューから通常の投稿と同じように行うことができます。
特定のpost typeの記事のみを検索
通常の記事検索ページのクエリにpost_type=POST-TYPE-IDENTIFIER
を付けることで、指定したpost typeの記事のみを検索することができます。
関連記事
関連記事はありません。