WordPressの有料テーマを購入した方から、親テーマで設定されたカスタム投稿(ブロックエディタ非対応)に対して、子テーマではブロックエディタ対応したいというご要望を頂戴することがあります。

regiter_post_type関数で再登録すればよいだけなんじゃないの?と考えていたのですが、それではうまくいきませんでした。今回は子テーマからカスタム投稿をブロックエディタに変更する方法をご紹介します。

カスタム投稿をブロックエディタに対応させるには?

これはググれば結構情報が出てきますが、register_post_type関数でshow_in_restを設定することで対応が可能です。


function create_post_type() {
  register_post_type( 'work', /* 投稿タイプのslug */
    array(
      'labels' => array(
        'name' => __( '導入事例' ) /* 投稿タイプの名前 */
      ),
      'public' => true,
      'has_archive' => true,
      'supports' => array('title','editor','thumbnail'),
      'show_in_rest' => true,
    )
  );
}
add_action( 'init', 'create_post_type' );

親テーマでshow_in_restが設定されていない!子テーマから設定できるのか?

ブロックエディタができるなんて想像していなかった頃に作られたテーマでは、 show_in_rest の設定がされていないものがあります。
子テーマ側でfunctions.phpに register_post_type関数でshow_in_restを再設定してやれば大丈夫なのではと考えたのですが、これではブロックエディタが使用できる状態にはなりません。

試しに親テーマのfunctions.phpを書き直して設定してやるともちろんブロックエディタは使用できるようになります。

今まで方法がわからず、親テーマのアップデート時にはカスタム投稿の設定部分にshow_in_restの設定を追加していたのですが、今回、方法がわかりました。

子テーマから親テーマのカスタム投稿設定(ブロックエディタを使えるように)を設定する

function ux_portfolio_block_editor( $args, $post_type ) {
    if ( 'featured_item' === $post_type ) {
        // 1. Enable in the REST API.
        $args['show_in_rest'] = true;

        // 2. Add the editor support.
        if ( empty( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
            $args['supports'] = [ 'editor' ];
        } elseif ( ! in_array( 'editor', $args['supports'] ) ) {
            $args['supports'][] = 'editor';
        }
    }
    return $args;
}

引用元:How To Enable Block Editor (Gutenberg) for Existing Post Type via functions.php

カスタム投稿設定時、supportsにeditorを設定していないと、show_in_restを設定しただけでは、ブロックエディタにならないことがあります。このため、supportsについても確認しています。

有料テーマでのホームページ構築も承っています。

アールジャパンは美しい国産有料テーマを多く販売しているTCDの公認制作会社です。
アールジャパンは美しい国産有料テーマを多く販売しているTCDの公認制作会社です。

海外製の有料テーマ、国産の有料テーマ。
テーマはいろいろとありますが、有料テーマの良いところはデザインが整っているものが多いところ。
デザインが整っている=デザイン費の削減につながり、WEBサイト構築費を抑えることができる効果もあります。

しかし、海外製のテーマは日本人には少しなじみがない感覚のものもあり、カスタマイズが必要になることもあります。

気に入ったデザインのテーマがあるけれど、少し変更したい。
そんなご希望がございましたら、ぜひお問い合わせください。

国内外の有料テーマのカスタマイズ事例が豊富にございます。

プロフィール

荒岩 理津子
荒岩 理津子株式会社アールジャパン 代表取締役
株式会社東芝にてソフトウェア開発11年、サスペンションメーカーの広報6年、国立大学情報システムセンター非常勤職員、個人事業主を経て、2016年9月に株式会社アールジャパンとして法人化。WordPressに特化したWEBシステムの開発に携わる。Microsoft Visual Basic®のプログラミングに関する著書が9冊、そのうち一部は国立図書館に寄贈されている。色彩検定1級、Shoplifyパートナー。趣味は手芸一般。編み物歴、洋裁歴は四半世紀以上。神奈川県中小企業家同友会 広報委員会副委員長・編集長。