ページ内目次

テーマ Lightning でサイドバーの位置(左右)を切り替える

テーマ Lightning では、管理画面のテーマのカスタマイズからサイドバーの表示位置(デフォルトではは右表示)を指定することができます。

これは、管理画面の【サイドバーの位置(PC閲覧時)】の左にチェックを入れることによって、plugins/lightning-advanced-unit/inc/sidebar-position.php で以下の設定がされます。

/*-------------------------------------------*/
/*  Position Change
/*-------------------------------------------*/
add_action( 'wp_head', 'lightning_adv_unit_sidebar_position_custom', 2 );
function lightning_adv_unit_sidebar_position_custom(){
	$options = get_option( 'lightning_theme_options' );
	if ( isset($options['sidebar_position'] ) && $options['sidebar_position'] === "left" ){
		$custom_css = "@media (min-width: 992px) { .siteContent .subSection { float:left;margin-left:0; } .siteContent .mainSection { float:right; } }";
		wp_add_inline_style( 'lightning-design-style', $custom_css );
	}
}

その結果、ソースコードのインラインに以下のスタイルが埋め込まれ、サイドバーが左に表示されます。

@media (min-width: 992px) {
 .siteContent .subSection {
  float:left;
  margin-left:0;
 }
 .siteContent .mainSection {
  float:right;
 }
}

これは2016年の8月から追加された機能で、とても便利でありがたいのです。

 

 

「トップページでは右、それ以外のページでは左に表示してね

 

なんてことを言われると頭がイタいのであります。

 

方法としては…

① function.php で、function lightning_adv_unit_sidebar_position_custom() を再定義する

②スタイルシートの中で、subSection と mainSection を上書き設定する

なども考えられますが

header.php の中で

<?php global $lightning_theme_options;
$lightning_theme_options = get_option('lightning_theme_options'); ?>

テーマオプションを読み込んでいる ↑ こことのすぐ下に

<!-- サイドバー設定 -->
<?php 
add_action( 'wp_head', 'lightning_adv_unit_sidebar_position_custom_caseby', 2 );
function lightning_adv_unit_sidebar_position_custom_caseby(){
	$options = get_option( 'lightning_theme_options' );
if ( is_home() || is_front_page() ) :
		$custom_css = "@media (min-width: 992px) { .siteContent .subSection { float:right; } .siteContent .mainSection { float:left; } }";
		wp_add_inline_style( 'lightning-design-style', $custom_css );
endif; 
}
?>
 
を挿入してやれば良いと思います。

その際に

<?php if ( is_home() || is_front_page() ) : ?>
<?php endif; ?>

のような条件分岐をすれば良いのでしょうね。

https://lightning.nagoya/ja/archives/adv_1_3_0

↑上へまいりま〜す