unregister_post_type()


WordPressのunregister_post_type()関数は、登録済みの投稿タイプを解除するために使用されます。この関数を使うことで、特定のカスタム投稿タイプを削除することができます。

構文

unregister_post_type( string $post_type );
  • $post_type (string) — 解除する投稿タイプのスラッグ(例: ‘book’, ‘movie’)。

例 1: 投稿タイプの解除

基本的な投稿タイプの解除例です。

<?php unregister_post_type( 'book' ); ?>

例 2: 条件に基づいて投稿タイプを解除

特定の条件下で投稿タイプを解除する例です。

<?php
if ( is_admin() ) {
    unregister_post_type( 'movie' );
}
?>

例 3: プラグインの初期化中に投稿タイプを解除

プラグインが有効化された際に投稿タイプを解除します。

<?php
add_action( 'init', function() {
    unregister_post_type( 'event' );
}, 20 );
?>

例 4: カスタム投稿タイプを解除し、新しいものを登録

既存のカスタム投稿タイプを解除し、新しい投稿タイプを登録します。

<?php
add_action( 'init', function() {
    unregister_post_type( 'gallery' );
    register_post_type( 'photo', [
        'label' => 'Photo',
        'public' => true,
    ] );
}, 20 );
?>

例 5: テーマのセットアップ時に投稿タイプを解除

テーマのセットアップフックで投稿タイプを解除します。

<?php
add_action( 'after_setup_theme', function() {
    unregister_post_type( 'portfolio' );
} );
?>

注意事項

  • unregister_post_type()関数は、既に登録されている投稿タイプでのみ動作します。存在しない投稿タイプを指定するとエラーになります。
  • この関数を使用するタイミングによっては、期待通りに動作しない場合があります。initアクションフックなど適切なフックで実行してください。

関連機能: