unregister_widget()


WordPress関数unregister_widget()は、登録済みのウィジェットを削除するために使用されます。

シンタックス

unregister_widget( string $widget_class );

引数の説明:

  • $widget_class (string) — 削除したいウィジェットのクラス名を指定します。

使用例 1: カスタムウィジェットを削除する

以下のコードは、カスタムウィジェットを削除する方法を示します。

<?php
function my_unregister_widgets() {
    unregister_widget( 'WP_Widget_Recent_Posts' );
}
add_action( 'widgets_init', 'my_unregister_widgets', 11 );
?>

使用例 2: 複数のウィジェットを削除する

複数のウィジェットを一度に削除する場合の例です。

<?php
function unregister_multiple_widgets() {
    unregister_widget( 'WP_Widget_Recent_Posts' );
    unregister_widget( 'WP_Widget_Archives' );
}
add_action( 'widgets_init', 'unregister_multiple_widgets', 11 );
?>

使用例 3: 条件に基づいてウィジェットを削除する

条件に基づいて特定のウィジェットを削除します。

<?php
function conditional_unregister_widget() {
    if ( is_admin() ) {
        unregister_widget( 'WP_Widget_Meta' );
    }
}
add_action( 'widgets_init', 'conditional_unregister_widget', 11 );
?>

使用例 4: カスタムウィジェットクラスの削除

独自に作成したカスタムウィジェットクラスを削除します。

<?php
class My_Custom_Widget extends WP_Widget {
    // カスタムウィジェットのコード
}
function unregister_custom_widget() {
    unregister_widget( 'My_Custom_Widget' );
}
add_action( 'widgets_init', 'unregister_custom_widget', 11 );
?>

使用例 5: 動的ウィジェット削除の準備

テーマやプラグインで動的にウィジェットを削除する場合の例です。

<?php
function dynamic_unregister_widget( $widget_name ) {
    if ( class_exists( $widget_name ) ) {
        unregister_widget( $widget_name );
    }
}
dynamic_unregister_widget( 'WP_Widget_Calendar' );
?>

注意事項

  • ウィジェットを削除する際は、unregister_widget()を適切にフックで使用してください。
  • widgets_initフックを利用する際は、優先順位を高めに設定することで他の登録処理より後に実行されるようにしてください。
  • 削除するウィジェットのクラス名が正しいことを確認してください。

関連機能: