register_widget()


WordPress関数register_widget()は、カスタムウィジェットを登録するために使用されます。

シンタックス

register_widget( string $widget_class );

引数の説明

  • $widget_class (string) — ウィジェットのクラス名を指定します。このクラスはWP_Widgetを拡張する必要があります。

例1: シンプルなカスタムウィジェットを登録する

次のコードは、基本的なカスタムウィジェットを登録する方法を示しています。

<?php
class My_Custom_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct(
            'my_custom_widget',
            __( 'My Custom Widget', 'text_domain' ),
            array( 'description' => __( 'A Custom Widget', 'text_domain' ) )
        );
    }
    public function widget( $args, $instance ) {
        echo $args['before_widget'];
        echo '<p>' . __( 'Hello, this is my custom widget!', 'text_domain' ) . '</p>';
        echo $args['after_widget'];
    }
}
add_action( 'widgets_init', function() {
    register_widget( 'My_Custom_Widget' );
} );
?>

例2: ウィジェットの登録を条件付きで行う

次のコードは、条件に応じてウィジェットを登録する例です。

<?php
if ( function_exists( 'register_widget' ) ) {
    add_action( 'widgets_init', function() {
        register_widget( 'My_Conditional_Widget' );
    } );
}
?>

例3: 複数のカスタムウィジェットを登録する

複数のウィジェットを一度に登録する方法を示します。

<?php
add_action( 'widgets_init', function() {
    register_widget( 'Widget_One' );
    register_widget( 'Widget_Two' );
} );
?>

例4: 登録済みウィジェットの確認

特定のウィジェットが登録されているかどうかを確認します。

<?php
if ( is_registered_sidebar( 'sidebar-1' ) ) {
    echo '<p>' . __( 'Sidebar-1 is registered.', 'text_domain' ) . '</p>';
}
?>

例5: 動的サイドバーの利用

次のコードは、登録済みウィジェットを動的に表示する方法を示しています。

<?php
if ( is_active_sidebar( 'footer-widget-area' ) ) {
    dynamic_sidebar( 'footer-widget-area' );
}
?>

注意事項

  • クラス名は一意である必要があります。他のプラグインやテーマと衝突しないように注意してください。
  • 必ずWP_Widgetクラスを拡張してカスタムウィジェットを作成してください。

関連機能: