Uweb

【WordPress】再利用ブロックをサイドバーに表示する

こんにちは。やまぐちなな(@nana_winter_web )です。

Gutenbergの再利用ブロックを活用するとなにかと便利ですが、管理画面のサイドバーに表示されておらずアクセスしづらいので、サイドバーに表示するコードを追加しました。

動作確認環境

以下の環境で動作確認済みです。

PHP7.4.13
WordPress5.7.2

コード

functions.phpに以下のコードを追加します。

/**
 * 投稿タイプの引数を変更.
 *
 * @param array  $args 登録済みの引数.
 * @param string $post_type 投稿タイプ.
 * @return array 変更後の引数.
 */
function theme_register_post_type_args( $args, $post_type ) {
	if ( 'wp_block' === $post_type ) {
		$args['_builtin']      = false;
		$args['show_in_menu']  = true;
		$args['can_export']    = false;
		$args['menu_position'] = 5; // 表示する位置を指定.
	}

	return $args;
}
add_filter( 'register_post_type_args', 'theme_register_post_type_args', 10, 2 );

_builtinをfalseにする理由

WordPressのサイドバーに表示される投稿タイプが以下に絞られており、投稿タイプを追加できるフックがないため$args['_builtin'] = false;にしています。

  • _builtinfalseの投稿タイプ
  • 投稿と固定ページ(投稿タイプの配列にarray_merge()で追加)

_builtinをfalseにして問題ないのか

投稿タイプの_builtinを条件に利用しているのが、get_permalink()generate_rewrite_rules()unregister_post_type()、エクスポートする投稿タイプの選択画面のみだったので現時点で影響はなさそうです。

万が一、影響があった場合もrewritepublicfalseで、フロントには影響がなさそうなのでまぁ良いかなと思って追加しました。
真似をするときは自己責任でお願いします。

まとめ

再利用ブロックの一覧にアクセスしやすくなり、編集も楽になりました。
投稿内で再利用ブロックにするよりも再利用ブロックを追加してから投稿内で利用するほうが、管理がしやすそうです。

シェア

スポンサーリンク

最新記事