WordPress のテーマ Bhari の個別ページでサイドバーを表示させる方法

問題と解決

WordPress のテーマ「 Bhari 」の個別ページでサイドバー(ウィジェット)を表示させたかったのですが、それをするオプションが見つからないので PHP の関数を少し変更しました。

変更するファイルは ~wp-content/themes/bhari/inc/extras.php と ~wp-content/themes/bhari/inc/customizer/customizer.php で、変更場所は下のとおりです。

extras.php

function bhari_body_class( $classes )
{

    if (is_home() || is_archive() || is_search() ) {
        $layout = bhari_get_option('sidebar-archive');
    } elseif (is_page() || is_404() ) {
        $layout = bhari_get_option('sidebar-page');
    } elseif (is_single() ) {
        $layout = bhari_get_option('sidebar-single');
    }

    switch ( $layout ) {

    case 'layout-sidebar-content' :         $classes[] = 'layout-sidebar-content';
        break;
    case 'layout-content-sidebar' :         $classes[] = 'layout-content-sidebar';
        break;
    case 'layout-content-sidebar-sidebar' :    $classes[] = 'layout-content-sidebar-sidebar';
        break;
    case 'layout-sidebar-content-sidebar' :    $classes[] = 'layout-sidebar-content-sidebar';
        break;
    case 'layout-sidebar-sidebar-content' : $classes[] = 'layout-sidebar-sidebar-content';
        break;
    case 'layout-content-sidebar' :
    default:
        $classes[] = 'layout-content-sidebar';
        break;
    }

    return $classes;
}
add_filter('body_class', 'bhari_body_class');

endif;

customizer.php

if (! function_exists('bhari_get_defaults') ) :

    /**
     * Set default options
     */
    function bhari_get_defaults()
    {

        $bhari_defaults = array(

         /**
             * Container
             */
         'container-width-page'    => 1100,
         'container-width-single'  => 1100,
         'container-width-archive' => 1100,

         /**
             * Sidebar
             */
         'sidebar-page'    => 'layout-content-sidebar',
         'sidebar-single'  => 'layout-content-sidebar',
         'sidebar-archive' => 'layout-content-sidebar',
        );

        return apply_filters('bhari_theme_defaults', $bhari_defaults);
    }

endif;

おわりに

PHP の書き方を知らないので、どうにかこうにかできた感じです。スマートな方法とは思えませんが、まぁできたしいいかなぁ、と。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です