この記事は最後に更新してから1年以上経過しています。

Gutenberg、初見です

説明

先週末、WordPress 4.9.8がリリースされ、事前に告知されてたように「Gutenberg」がお披露目になった。投稿編集ページがガラリと変わり、影響範囲はそれなりに大きいと思われる。まずはこの週末に感じたことを整理してみた。

「新しいエディター」と「旧エディター」

4.9.8へアップデートすると、ダッシュボードに「新しいエディター」ウィジェットが表示される。ここで「Gutenberg」をプラグインとしてインストールし、有効化するのが第一歩となる。なお影響範囲がはっきりしないので、開発環境で試していく。

まずは「投稿一覧」。「新規追加」の「▼」をクリックすると「Gutenberg」と「旧エディター」のプルダウンメニューが表示されている。また一覧中の記事タイトルにマウスを移動すると、「編集」の次に「旧エディター」が追加されている。ここで「旧エディター」をクリックすれば、従来の投稿編集ページになる。

投稿一覧では編集方法が選択できる

この投稿一覧表の上部にある「すべての日付」や「カテゴリー一覧」が標準と異なっているのは、自作プラグイン「Posts filter multiselect」によるものだ。ざっと試したところではこのプラグインは4.9.8環境でも問題なく動作している。

正常に動作しなかったのは、記事タイトルにマウスを移動させた際に表示される「複製」リンク。これはダッシュボードや投稿編集ページにおいて投稿記事の検索ボックスを表示する自作プラグイン「Somewhere search box」の機能の1つで、指定された投稿の本文などを読み込んだ状態で新規投稿ページを開く機能だが、期待通りの動作にはなっていない。この機能の実装は'default_content'フィルターを利用しているのだが、何らかの修正が必要である。

「ビジュアルエディター」と「コードエディター」

「投稿一覧」ページにおいて「新規追加」の「Gutenberg」、記事タイトルおよびその下にある「編集」をクリックすると、「Gutenberg」の新しい編集ページが表示される。

「ビジュアルエディター」と「コードエディター」で切替可能

新しい編集ページはすっきりな構成で、見慣れた「カスタムフィールド」のエリアがない。カスタムフィールドはいくつかのサイトで利用しているので、ここにも対策が必要になる。また、一部サイトにおいて'edit_form_after_title'アクションを使用して投稿タイトル直下にフォームを追加しているのだが、新しい編集ページでは何も表示されない。新しい編集ページへの移行はかなり悩ましい。

REST API必須

さて「Gutenberg」の新しい編集ページだが、カスタム投稿タイプを使っている場合は注意が必要である。新しい編集ページに切り替わるためにはいくつか条件があり、その1つがREST APIが有効になっていること。 register_post_type関数で投稿タイプを登録する際、'show_in_rest'プロパティの値がtrueになっていないと編集ページは従来のままとなる。またREST APIを無効化している場合は、新しい編集ページに切り替わったタイミングで何も表示されない(何かエラーメッセージが表示されてもいいと思う)。

WordPress 5.0のリリース日はまだ発表されていないと思うのだが、自作のプラグインやサイトの改修をリリース日までに対応するのはかなり厳しい。できるだけ公開しているプラグインは対応したいのだが。。。


最終更新 : 2018年08月06日 17:47

お勧め

add_shortcode(2018年5月27日 更新)

void add_shortcode( string $tag, mixed $func )
ショートコード(独自タグ)を追加する。ショートコードは、投稿記事内でテキスト内容がない[tag]や、テキストを内包する[tag]テキスト[/tag]の書式で使用できる独自タグのこと。標準の状態では、 the_content関数によって表示する直前のフィルター処理内でパラメータ$funcで指定した関数・メソッドが実行される。

get_user_setting(2022年1月31日 更新)

mixed get_user_setting( string $name [ , string $default = false ] )
ユーザーインターフェイス設定を取得する。

have_posts(2018年5月27日 更新)

bool have_posts( )
次の投稿データが存在するかを調べる。

in_category(2018年5月27日 更新)

bool in_category( mixed $category [ , mixed $post = null ] )
投稿情報が指定したカテゴリーに属しているか調べる。

add_feed(2024年6月24日 更新)

string add_feed( string $feedname, callable $callback )
フィードを追加する。