概要
unregister_block_template
関数は、WordPressにおけるブロックテンプレートを登録解除するために使用されます。この関数は、特定の投稿タイプから特定のテンプレートを削除する際に役立ちます。これにより、カスタム投稿タイプやカスタムテーマ内で不要なテンプレートを排除でき、ユーザーエクスペリエンスを向上させることができます。また、特定の条件に基づいて柔軟にテンプレートを制御することが可能です。
使用される機能の例
- 決められた条件に基づいてテンプレートを動的に変更したい場合。
- 特定のユーザーの編集権限に応じてテンプレートを除外したい場合。
- プラグインによって自動的に生成されたテンプレートを削除したい場合。
- テーマ更新後に不要なテンプレートをクリアしたい場合。
- カスタム投稿タイプ向けに特定のテンプレートを非表示にしたい場合。
- 管理画面から投稿内容の編集時に特定のテンプレートを隠したい場合。
- テンプレートの選択肢をシンプルに保ちたい場合。
- ユーザーによる誤操作を防ぎたい場合。
構文
unregister_block_template( string $post_type, array|string $template );
パラメータ
$post_type
(string) – テンプレートの登録を解除したい投稿タイプのスラッグ。$template
(array|string) – 登録解除したいブロックテンプレートのスラッグ名またはその配列。
戻り値
この関数は、登録解除が成功したかどうかに関わらず、戻り値はありません。
関連する関数
unregister_block_templateの関連関数
使用可能なバージョン
unregister_block_template
関数は、WordPress 5.8以降で使用可能です。
コアファイルパス
この関数は、wp-includes/blocks.php
に含まれています。
サンプルコード
サンプル1: 特定の投稿タイプのテンプレートを解除
function my_custom_unregister_template() {
unregister_block_template( 'my_custom_post_type', 'my-template-name' );
}
add_action( 'init', 'my_custom_unregister_template' );
このコードは、カスタム投稿タイプmy_custom_post_type
からmy-template-name
というテンプレートを解除しています。
サンプル2: 複数のテンプレートを解除
function my_multi_template_unregister() {
unregister_block_template( 'my_custom_post_type', ['template-1', 'template-2'] );
}
add_action( 'init', 'my_multi_template_unregister' );
このコードは、カスタム投稿タイプmy_custom_post_type
からtemplate-1
とtemplate-2
の両方のテンプレートを解除しています。
サンプル3: 特定の条件下でテンプレートを解除
function conditional_template_unregistration() {
if ( is_user_logged_in() ) {
unregister_block_template( 'my_custom_post_type', 'template-for-logged-in-user' );
}
}
add_action( 'init', 'conditional_template_unregistration' );
このコードは、ユーザーがログインしている場合にのみ、特定のテンプレートを解除します。
サンプル4: 投稿編集画面でテンプレートを解除
function remove_template_from_editor() {
if ( is_admin() ) {
unregister_block_template( 'my_custom_post_type', 'editor-template' );
}
}
add_action( 'admin_init', 'remove_template_from_editor' );
このコードは、管理画面で投稿編集時に特定のテンプレートを解除します。
サンプル5: テーマのアクティベーション時にテンプレートを解除
function theme_activation_template_unregistration() {
unregister_block_template( 'post', 'old-template' );
}
add_action( 'after_switch_theme', 'theme_activation_template_unregistration' );
このコードは、テーマがアクティベートされた時に、post
タイプからold-template
を解除します。
この関数のアクションでの使用可能性
アクション | 使用可能 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
非推奨または削除されたバージョン
現在、unregister_block_template
関数は過去のバージョンで非推奨または削除されたという情報はありません。