【发布时间】:2014-04-25 11:16:26
【问题描述】:
我有一个主题选项页面和一个循环来获取我的类别。这段代码工作正常,我可以保存我的选项。代码如下:
function drop_elements_function(){
$my_cats = get_categories();
$i = 1;
foreach( $my_cats as $my_cat ) :
$my_categories[$my_cat->cat_ID] = array(
'value' => $my_cat->cat_ID,
'label' => $my_cat->cat_name
);
$i++;
endforeach;
$options = get_option('sandbox_theme_social_options');
echo'<select id="featured_cat" name="sandbox_theme_social_options[Drop_Elements]">';
foreach ( $my_categories as $category ){
$label = $category['label'];
$selected = '';
if ( $options['Drop_Elements'] == $category['value'] )
$selected = 'selected="selected"';
echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . $selected . '>' . $label . '</option>';
}
echo '</select>';
//print_r($options['Drop_Elements']);
}/*Function end*/
输出如下所示:
http://www.vasinternetposao.com/img.png
问题:现在当我的主题安装第一次时,我得到了如上面屏幕截图一样的输出,但显然我的选项尚未保存到数据库中(用户必须单击保存按钮才能选择该类别)。
所以我想做这样的事情:
1.) 用户第一次安装主题,然后输出如下所示:
http://www.vasinternetposao.com/img2.png
2.) 如果用户无意中选择“选择您的类别”并单击“保存按钮”
输出将再次:
http://www.vasinternetposao.com/img2.png
3.) 如果用户选择了真正的类别(不是“选择您的类别”),那么“选择您的类别”就会消失:
http://www.vasinternetposao.com/img.png
这是我的尝试,但它不起作用:
function drop_elements_function(){
$my_cats = get_categories();
$i = 1;
foreach( $my_cats as $my_cat ) :
$my_categories[$my_cat->cat_ID] = array(
'value' => $my_cat->cat_ID,
'label' => $my_cat->cat_name
);
$i++;
endforeach;
$options = get_option('sandbox_theme_social_options');
echo'<select id="featured_cat" name="sandbox_theme_social_options[Drop_Elements]">';
foreach ( $my_categories as $category ){
$label = $category['label'];
$selected = '';
if ( $options['Drop_Elements'] == $category['value'] ){
$selected = 'selected="selected"';
echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . $selected . '>' . $label . '</option>';
}
elseif(!isset($options['Drop_Elements'])){
$selected = 'selected="selected"';
echo '<option selected="selected" value="Choose Your Category">Choose Your Category</option>';
echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . '>' . $label . '</option>';
}
}/*Foreach close*/
echo '</select>';
//print_r($options['Drop_Elements']);
}/*Function end*/
可以用 PHP 完成吗?任何帮助表示赞赏!谢谢!
【问题讨论】:
标签: php wordpress loops foreach