我有一个阵列在这里看到:
foreach ($fonts as $font) {
$html .= '<option value="'. $font['name'] .''. $font['font'] .''. $font['css'] .'"' . selected( $layout_options['h1-font'], ''. $font['name'] .''. $font['font'] .''. $font['css'] .'', false) . '>' . __( ''. $font['name'] .'' ) . '</option>';
$html.= $font['font'];
$html .= '</option>';
}
它的var_dump结果如下:
使用
var_dump($layout_options['h1-font']
我得到了结果
string(85) "Lobster@import url(http://fonts.googleapis.com/css?family=Lobster);'Lobster', cursive"
该数组由以下变量组成
'. $font['name'] .''. $font['font'] .''. $font['css'] .'
我需要将它们分开,理想情况下我想使用
$layout_options['hi-font-css']
我该怎么做?
更新:
希望如果我发布所有代码,它会解释得更多。
这是我的功能,我将回到原始代码,因为这稍微好一点。
function span_font_callback() {
$layout_options = (array) get_option( 'layout_options' );
$fonts = get_fonts();
$current = 'arial';
if ( isset( $layout_options['span-font'] ) )
$current = $layout_options['span-font'];
?>
<select name="layout_options[span-font]">
<option value="default">Please select an option</option>
<?php foreach( $fonts as $key => $font ): ?>
<option <?php if($key == $current) echo "SELECTED"; ?> value="<?php echo $key; ?>"><?php echo $font['name']; ?></option>
<?php endforeach; ?>
</select>
<input type="text" name="layout_options[span_font_size]" size="6" value="<?php echo $layout_options['span_font_size']; ?>" placeholder="Size"/>
<input type="text" name="layout_options[span_font_colour]" size="6" value="<?php echo $layout_options['span_font_colour']; ?>" placeholder="Colour"/>
<?php
}
这里是get_fonts()函数
function get_fonts() {
$fonts = array(
'arial' => array(
'name' => 'Arial',
'font' => '',
'css' => "'Arial', sans-serif"
),
'Montez' => array(
'name' => 'Montez',
'font' => '@import url(http://fonts.googleapis.com/css?family=Montez);',
'css' => "'Montez', cursive"
),
'Open Sans' => array(
'name' => 'Open Sans',
'font' => '@import url(http://fonts.googleapis.com/css?family=Open+Sans);',
'css' => "'Open Sans', sans-serif"
),
'ubuntu' => array(
'name' => 'Ubuntu',
'font' => '@import url(https://fonts.googleapis.com/css?family=Ubuntu);',
'css' => "'Ubuntu', sans-serif"
),
'lobster' => array(
'name' => 'Lobster',
'font' => '@import url(http://fonts.googleapis.com/css?family=Lobster);',
'css' => "'Lobster', cursive"
)
);
return apply_filters( 'get_fonts', $fonts );
}
这是我的stylesheet.php
<?php $layout_options = get_option ( 'layout_options' ); ?>
@import url(http://fonts.googleapis.com/css?family=Lobster);
.hero_text {
text-align: right;
padding-left: 5px;
display: inline;
float: right;
clear: both;
position: fixed;
right: 0;
font-family: <?php echo $layout_options['h1-font']; ?>;
font-size: <?php echo $layout_options['h1_font_size']; ?>;
color: <?php echo $layout_options['h1_font_colour']; ?>;
line-height: 20px;
}
我需要替换
@import url(http://fonts.googleapis.com/css?family=Lobster);
使用字体数组,这样当我的下拉列表更改时,它将更改该行以匹配字体。我需要使用类似下面的内容,但具体到数组名称,css和字体?
<?php echo $layout_options['h1-font-']; ?>;
希望你这更好吗?
答案 0 :(得分:0)
在连接$html
字符串之前,请执行以下操作:
$layout_options['hi-font-css'] = $font['name'] . $font['font'] . $font['css'];
因此整个代码将是:
foreach ($fonts as $font) {
$layout_options['hi-font-css'] = $font['name'] . $font['font'] . $font['css'];
$html .= '<option value="'. $layout_options['hi-font-css'] .'"' . selected( $layout_options['h1-font'], ''. $layout_options['hi-font-css'] .'', false) . '>' . __( ''. $font['name'] .'' ) . '</option>';
$html.= $font['font'];
$html .= '</option>';
}