見出し画像

WordPress自作テーマ制作記録⑯子テーマ作成、カスタマイザー機能追加

こちらの続きです。

親テーマがだいたいできたので、カスタマイズしやすいように今回は子テーマを作ったり、カスタマイザーの機能追加をやりました。

①子テーマの作成
②functions.php修正
③カスタマイザー機能追加(親テーマ)

子テーマの作成

style.css作成
functions.php作成

functions.php修正

単純に子テーマを作ると、cssの読み込みが思ったようにいかなかったので、親テーマのfunctions.phpを修正した。

【発生した問題】

functions.phpは子テーマ・親テーマの順に読まれるので、

子テーマのfunctions.phpで
①親テーマのcss読み込み
②子テーマのcss読み込み

親テーマのfunctions.phpで
③親テーマのcss読み込み(reset.css、style.css)

という順番になってしまった。

想定している順で読み込んでほしいので、
子テーマのfunctions.phpでcss読み込みした場合は、親テーマのfunctions.phpではcss読み込みしないよう修正。

【修正内容】

親テーマ:

// CSS読み込み
if ( ! function_exists( 'add_my_styles')) {
   function add_my_styles(){
       wp_enqueue_style('my-reset', get_theme_file_uri( '/css/reset.css'));
       wp_enqueue_style('my-style', get_theme_file_uri( '/css/style.css'), array(), filemtime( get_theme_file_path( '/css/style.css')));
   }
   add_action( 'wp_enqueue_scripts', 'add_my_styles');    
}

子テーマ:

function add_my_styles(){
   wp_enqueue_style('reset-style', get_parent_theme_file_uri( '/css/reset.css'));
   wp_enqueue_style( 'parent-style', get_parent_theme_file_uri( '/css/style.css'));
   wp_enqueue_style('child-style', get_theme_file_uri( '/css/style.css'), array('parent-style'), filemtime( get_theme_file_path( '/css/style.css')));
}
add_action( 'wp_enqueue_scripts', 'add_my_styles' );

カスタマイザー機能追加

色をカスタマイザーで設定できるようにした。

画像1

このあたりを参考に。
https://kunoichiwp.com/faq/2365

css変数を使ったので、IE対応でponyfillを使った。
wp_enqueue_scriptのところに追加

       // css-vars-ponyfill
       $ua = $_SERVER['HTTP_USER_AGENT'];
       if (strstr($ua, 'Trident') || strstr($ua, 'MSIE')) {
           wp_enqueue_script( 
               'css-vars-ponyfill', 
               '//cdn.jsdelivr.net/gh/nuxodin/ie11CustomProperties@4.1.0/ie11CustomProperties.min.js'
           );
       }

TODO

・readme.txt用意
・screenshot.png用意

検討

・トップページ

【対応不要にしたもの】

・faviconの設定
→標準のカスタマイザーでできた。
・先頭固定表示にしたときのウィジェット、アーカイブページ
→今まで使っていたテーマでもやってないのでやらない。
・post_classを全部につけるかどうか。(アーカイブやウィジェット・関連記事)
→今まで使っていたテーマでもやってないのでやらない。
・「さらに読む」の文言
→本体の翻訳ファイルを参照している箇所で、普通の方法では変更できなさそう。
使わない予定なので対応しないことにする。→対応できた。

・ラインなど、エディタにある項目のcssをどうするか
→一旦対応不要として、既存サイトにこのテーマを反映したときにおかしな点があれば対応することにする。

この記事が気に入ったらサポートをしてみませんか?