こんにちは。やまぐちなな(@nana_winter_web )です。
Gutenbergの再利用ブロックを活用するとなにかと便利ですが、管理画面のサイドバーに表示されておらずアクセスしづらいので、サイドバーに表示するコードを追加しました。
動作確認環境
以下の環境で動作確認済みです。
PHP | 7.4.13 |
---|---|
WordPress | 5.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;
にしています。
- _builtinがfalseの投稿タイプ
- 投稿と固定ページ(投稿タイプの配列に
array_merge()
で追加)
_builtinをfalseにして問題ないのか
投稿タイプの_builtin
を条件に利用しているのが、get_permalink()
とgenerate_rewrite_rules()
、unregister_post_type()
、エクスポートする投稿タイプの選択画面のみだったので現時点で影響はなさそうです。
万が一、影響があった場合もrewriteもpublicもfalseで、フロントには影響がなさそうなのでまぁ良いかなと思って追加しました。
真似をするときは自己責任でお願いします。
まとめ
再利用ブロックの一覧にアクセスしやすくなり、編集も楽になりました。
投稿内で再利用ブロックにするよりも再利用ブロックを追加してから投稿内で利用するほうが、管理がしやすそうです。