テーマのオプションと連動した動的なcssの生成について
-
皆さま、いつもお世話になっております。
只今、カスタマイズ可能なテーマの作成に取り組んでおり、その中で分からない事が発生してしまいましたので、相談させて下さい。
今のところ、テーマにデザインオプションメニューを追加して、そこで選択した色やスタイルや数値によって、オプション項目毎に追加のcssファイルを読み込ませるようにしています。
(※初期値は全てstyle.cssに記述済み。ユーザー値はDBに格納しget_optionで取り出し。)
たとえば、ヘッダの文字を黒に指定した場合には、追加の”head_text_black.css”というcssファイルをヘッダにlinkタグを追加することによって読み込ませています。
(実際のコード:<link rel=”stylesheet” type=”text/css” href=”<?php echo get_bloginfo(‘template_directory’); ?>/optionalcss/<?php echo get_option(‘head_text_color’); ?>.css” />
)今、このようなカスタマイズ項目が現在3つ(ヘッダのテキスト色、位置、ヘッダ自体の高さ)あり、これを、ヘッダ以外のパーツに拡大し、20項目近く迄増やしたいと思っていますが、現状、カスタマイズ項目数だけ追加cssを読み込むことになるという非常に稚拙な仕様ですので、表示速度の低下が懸念されます。
また、現在ヘッダ自体の高さの指定も、20px刻みで5つの数値から選択させて、それぞれの選択肢用のcssをあらかじめ用意して、そこから1つ読み込んでいます。
(例:100pxを指定したら、”headheight_100px.css”を読み込むようにさせる。)
が、しかし、これも本来はユーザーが自由に数値指定出来るようにあるべきと思っています。そこで、動的にphpでcssを吐き出す”themeoptioncss.php”のようなものを作ってみたのですが、”undefined function get_option()” となり、get_option()を使えるようにする為にもろもろのコアファイルをrequireしないといけないのだろうな…でも、そうする事自体も表示速度的かつサーバへの負荷的にいかがなものだろう…と立ち止まりました。
styleタグで直接ヘッダ内にカスタマイズ分のcssを動的に書き出す事も検討しましたが、htmlのサイズがかなり大きくなるのと、ページ遷移時は実質的にカスタマイズ分cssの再読み込みとなるので避けたいと思っています。
また、ユーザーが設定をupdateする度に、ファイルとして”themeoption.css”を書き出して読み込む事も考えましたが、これもスマートでない気がしました。そこで、ご相談ですが、テーマのオプションと連動した動的なcssを生成する為に、表示速度的にも技術的にも最もスマートな方法のヒントを頂戴出来ればと思っております。
もしくは、themeoptioncss.php内でget_option()を使えるようにする為の必要最低限のコアの呼び出し方法を教えていただければと思っています。それが、あまりサーバの負荷にならないということであれば、その方法をとりたいと思います。
文章的、技術的に稚拙な内容で大変恐縮ですが、何かヒントもしくはアドバイスを頂戴出来れば幸いです。
皆さま、どうぞ宜しくお願い致します。
- トピック「テーマのオプションと連動した動的なcssの生成について」には新たに返信することはできません。