ウィジェットをショートコードにして任意の場所で表示する

「ウィジェット」はWordPressの標準機能で、特にサイドバーのバナーエリアや新着情報のリスト表示などの管理に使うものですが、ページから独立しているので簡易なCMSとしても使うことができます。
そこで今回は、ページの好きな場所にこのウィジェットを貼ることができるように、ウィジェットをショートコードにして任意の場所で表示する方法についてご紹介します。
テーマのfunctions.phpに以下を追記します。
function custom_widgets_init()
{
register_sidebar(array(
'name' => 'バナー',
'id' => 'sidebar-1',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));
}
add_action('widgets_init', 'custom_widgets_init');
if (!function_exists('display_banner')) {
function display_banner()
{
if (is_active_sidebar('sidebar-1')) {
ob_start();
dynamic_sidebar('sidebar-1');
return ob_get_clean();
}
return false;
}
add_shortcode('display_banner', 'display_banner');
}
すると[外観]メニュー内に[ウィジェット]メニューが現れ、[ウィジェット]メニューを開くと「バナー」というブロックが見えると思います。
このブロックにウィジェットをドラッグ&ドロップし、中身を作って保存しましょう。
あとはコンテンツエディターの任意の場所に下のショートコードを貼り付けるだけです。
[display_banner]
貼り付けた場所にバナーウィジェットが表示されます。