テーマ 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