ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

WordPress, 投稿や固定ページをカスタマイズする。(投稿タイプのカスタマイズ)

wordpress image
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

デフォルトの投稿タイプには『投稿』『固定ページ』がありますが、カスタマイズしたいことがあります。たとえば投稿タイプで親子関係を使いたいとか、固定ページでタグを使いたいとか。

やり方はかんたんです。カスタマイズ用の関数やフィルターが用意されています。

(もちろんカスタム投稿タイプでも使える。)

投稿とはデータベースの wp_posts のデータのことで、デフォルトでは『投稿』『固定ページ』があります。じつは画像もそのひとつで、データベース上は wp_posts に入っている。

これを見ても分かるように、投稿と固定ページ、画像は同じデータで扱われながら性格が違います。

投稿ページはカテゴリ・タグは使えるけど投稿同士の親子関係はない。

固定ページは投稿同士の親子関係はあるけどカテゴリ・タグが使えない。

画像は見た目からして投稿・固定ページとまったく違う。

その性格が『投稿タイプ』と呼ばれるもの。

wp_posts のデータはデータタイプの登録で性格を決めます。そしてその性格を後で変えることもできます。

具体的な例で性格を変えてみましょう。

WordPress Codex 日本語版

データベース構造

WordPress.org リファレンス

Database Description

投稿に親子関係を持たせる

まずはデフォルトの投稿の性格に投稿同士の親子関係を持たせましょう。最初に、投稿の性格を決める投稿タイプの登録処理を確認します。

wp-includes/post.phpより
register_post_type(
	'post',
	array(
		'labels'                => array(
			'name_admin_bar' => _x( 'Post', 'add new from admin bar' ),
		),
		'public'                => true,
		'_builtin'              => true, /* internal use only. don't use this when registering your own post type. */
		'_edit_link'            => 'post.php?post=%d', /* internal use only. don't use this when registering your own post type. */
		'capability_type'       => 'post',
		'map_meta_cap'          => true,
		'menu_position'         => 5,
		'hierarchical'          => false,
		'rewrite'               => false,
		'query_var'             => false,
		'delete_with_user'      => true,
		'supports'              => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
		'show_in_rest'          => true,
		'rest_base'             => 'posts',
		'rest_controller_class' => 'WP_REST_Posts_Controller',
	)
);

'hierarchical' が false になっていますね? これを true に変えるだけでOK。そしてここの値を変えるフィルターが用意されているので変更はかんたん。

add_filter('register_post_type_args', function( $args, $post_type ) {
    if ( $post_type === 'post' ){
        $args['hierarchical'] = true;
    }

    return $args;

}, 10, 2);

と、行きたいところですが、デフォルトの投稿は階層化ができません。とんでもない動きをします。

例がいけませんでした。でもこのフィルターは、投稿タイプの名称以外のパラメータをあとで変更できます。

自分で作ったカスタム投稿タイプは登録処理を修正すればいいですが、デフォルトや他者製のプラグインなどではそうはいきません。

そういうときに使います。

まわりを充実させるのも大事

WordPressの編集画面は、投稿タイプだけでできているわけではありません。むしろ投稿タイプはベースになっているもの。

ブロックを作ったり、タクソノミー(カテゴリ、タグなど)を充実させたり、メタデータ(カスタムフィールド)で項目を追加したり。

こっちのほうを充実させるほうが編集をもっと便利にさせます。

この3つは、数あるカスタマイズの方法のごく一部です。でもこれくらいをするだけでも編集画面を充実させることができます。

ぜひチャレンジしてみてください。

じつはブロックもひとつの投稿タイプで 'wp_block' という名で登録されている。

タクソノミーは投稿をグループ化する別データ、メタデータは投稿の付属データ。これはデータベースのテーブルが別にあり、投稿IDでつながっている。

前の投稿
WordPress, カテゴリやタグをカスタマイズする。(タクソノミーのカスタマイズ)
WordPress, 『投稿』は親子関係(階層)ができない。値を変えると固定ページになっちゃう!
次の投稿

WordPressの本

post-cta-image

たくさんあるなかで、WordPressの基本が学べる、目的別に学べる本を選びました。

  • WordPressの基本。
  • Webサイト作成から運用まで全体的に学ぶ。
  • かんたんなカスタマイズを学ぶ。
  • 何も分からないところから学ぶ。
  • WordPressからPHPプログラミングを学ぶ。

の5冊です。どうしてもネット上で調べて勉強するのが苦手という人におすすめです。

この内容をモノにすればほかの本は必要ありません。あとは自分の力で、書籍を使わずにインターネット上にある情報だけで学んでいけます。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください