バグ報告Ver.0.0.0→0.0.1

リリースメモ
この記事は約3分で読めます。
記事内に広告が含まれています。

【件名】子テーマを選択し、親テーマのスキンを選択したときに正しく表示されない

現象

子テーマを選択し、親テーマのスキンを選択すると、インラインhvn-color-inline-cssなどが出力されない。
以下のときは、正しく表示される。

  • 親テーマを選択し、スキンを選択
  • 子テーマを選択し、子テーマのスキンを選択

原因

表1に、変数の値を示す。

変数の値
変数親テーマ子テーマ
skin_urlhttp://~/wp-content/themes/cocoon-master/skins/skin-made-in-heaven/http://~/wp-content/themes/cocoon-master/skins/skin-made-in-heaven/
get_theme_file_urihttp://~/wp-content/themes/cocoon-master/http://~/wp-content/themes/cocoon-child-master/
skin/skins/skin-made-in-heaven/http://~/wp-content/themes/cocoon-master/skins/skin-made-in-heaven/

スキンパスを削除し、スキンフォルダ名/skins/skin-made-in-heaven/を求める。
子テーマを選択しているため、get_theme_file_uri()の戻り値は、子テーマURLとなる。
そのため、表1に示すように、変数skinの値が不正となる。

スキンフォルダ下のlibから、各関数を呼び出すが、パスが不正のため、各関数が呼ばれない。
結果として、インラインhvn-color-inline-cssなどが出力されなかった。

対策

スキンフォルダ名を動的に求めるのをやめ、固定とする。以下に変更する。

$skin     = '/skins/skin-made-in-heaven/';
$skin_url = get_theme_file_uri($skin);

define('HVN_SKIN', $skin);
define('HVN_SKIN_URL', $skin_url);

//******************************************************************************
//  関数定義
//******************************************************************************
$path = url_to_local(HVN_SKIN_URL);
$files = glob($path . '/lib/*.php');

変更一覧

パスファイル名
/skin-made-in-heaven/functions.php
タイトルとURLをコピーしました