それはテーマカスタマイザで異なる( カスタム )タイプの500の設定を持っているので私は非常に柔軟で素晴らしいテーマを作りました。私はライブcssを生成します それがコーデックスで言うように :
function mytheme_customize_css()
{
?>
<style type="text/css">
h1 { color:<?php echo get_theme_mod('header_color', '#000000'); ?>; }
h2 { color:<?php echo get_theme_mod('tagline_color', '#000000'); ?>; }
... 498 more ...
</style>
<?php
}
add_action( 'wp_head', 'mytheme_customize_css');
今私のサイトは遅いです。これは、ページが読み込まれるたびに500回のデータベース呼び出しがあるからだと思います。私のサイトをスピードアップし、それでも500のカスタマイズオプションがある方法はありますか?
テーマの変更はどのくらいの頻度で変更されますか?設計段階に多くありますが、数年後になるかもしれません。訪問者はもちろんのこと、常に管理者によるもので、一般ユーザによるものではありません。そのため、ページロードごとに完全なCSSを生成することは意味がありません( 追加の背景情報 )。
より良い方法は、管理者専用のCSSを生成し、他の人のために結果を保存することです。これにより、データベースの呼び出し回数が500から1に減少します。
function mytheme_customize_css()
{
if (current_user_can( 'edit_theme_options' ) ) {
$assemble_css = "
<style type='text/css'>
h1 { color:" . get_theme_mod( 'header_color', '#000000' ); . "; }
h2 { color:" . get_theme_mod( 'tagline_color', '#ffffff' ); . "; }
... 498 more ...
</style>";
set_theme_mod( 'all_mods', $assemble_css );
}
echo get_theme_mod ( 'all_mods', '' );
}
add_action( 'wp_head', 'mytheme_customize_css' );
これは優れていますが、実際にはどのくらいの頻度で500個のモッズが使用されるのでしょうか。そしてstyle.css
の代わりにこの関数のデフォルトのcss値を持つことは本当に理想的ですか?デフォルトをそこに移動し、値がある場合にのみcss行を生成するようにしてください。これは与える:
function mytheme_customize_css()
{
if (current_user_can( 'edit_theme_options' ) ) {
$assemble_css = "
<style type='text/css'>";
if ( get_theme_mod('header_color') ) $assemble_css .= "
h1 { color:" . get_theme_mod( 'header_color' ); . "; }";
if ( get_theme_mod('tagline_color') ) $assemble_css .= "
h2 { color:" . get_theme_mod( 'tagline_color' ); . "; }";
... 498 more ...
$assemble_css .= "</style>";
set_theme_mod( 'all_mods', $assemble_css );
}
echo get_theme_mod ( 'all_mods', '' );
}
add_action( 'wp_head', 'mytheme_customize_css' );
実際にこれだけのmodがある場合は、関数内に500行(およびセクションをカスタマイザに追加するための数千行のコード)を含めるよりも、データ構造にまとめてループしたほうがよいでしょう。
また、このように直接cssを頭に書くのは良くありません。 add_inline_style
を使用してください。しかしそれはまた別のことです。