使用php识别重复设置

时间:2015-06-19 11:15:59

标签: php css wordpress fonts

我正在构建一个wordpress主题,在主题定制器中,您可以为Body Text,Headings和Navbar选择Google字体。

下面显示了我当前如何将所选字体导入到我页面顶部调用的custom-css.php文件中:

$base_font = get_theme_mod('font_base_family');
$headers_font = get_theme_mod('font_headings_family');
$menu_font = get_theme_mod('font_nav_family');

if($base_font !='') { ?>
<link href='http://fonts.googleapis.com/css?family=<?php echo str_replace(" ","+",$base_font );?>:100,200,300,400,500,600,700,800,900' rel='stylesheet' type='text/css'>
<?php } ?> 

<?php if ($headers_font != '') { ?>
<link href='http://fonts.googleapis.com/css?family=<?php echo str_replace(" ","+",$headers_font );?>:100,200,300,400,500,600,700,800,900' rel='stylesheet' type='text/css'>
<?php } ?>

<?php if ($menu_font != '') { ?>
<link href='http://fonts.googleapis.com/css?family=<?php echo str_replace(" ","+",$menu_font );?>:100,200,300,400,500,600,700,800,900' rel='stylesheet' type='text/css'>
<?php } ?>

然后在我的custom-css.php文件中,我有这样的东西(缩短):

body {
font-family: <?php echo get_theme_mod('font_base_family'); ?>;
}
h1, h2, h3, h4, h5, h6 {
font-family: <?php echo get_theme_mod('font_headings_family'); ?>;
}
#header nav ul li > a, #header nav ul li > span {
font-family: <?php echo get_theme_mod('font_nav_family'); ?>;
}

我遇到的问题显然是加载3个这样的字体,所有的字体权重也都大大增加了页面加载时间。如果一个用户想要每个3个不同的字体,那很好,但是说他们决定有2个或3个相同的字体,我不想在我脑子里有重复。

比如说有人想要Body和Headings的相同字体,有没有办法,我可以使用php,说“如果a与b或c相同 - 删除副本”

希望这是有道理的。

1 个答案:

答案 0 :(得分:2)

将字体分配给数组键并迭代它。

$fonts = array(
    get_theme_mod('font_base_family') => 'base',
    get_theme_mod('font_headings_family') => 'headings',
    get_theme_mod('font_nav_family') => 'nav'
);

foreach ($fonts as $key => $type) { ?>
    <link href='http://fonts.googleapis.com/css?family=<?php echo str_replace(" ", "+", $key); ?>:100,200,300,400,500,600,700,800,900' rel='stylesheet' type='text/css'>
<?php }