我正在创建一个自定义管理面板,管理员可以使用单选按钮在3种布局之间进行选择。除了管理员创建新页面时没有默认选项外,其他一切都可以正常工作。
我使用以下方法解决了此问题:
if ($layout == "") {
$layout = "layout_1";
}
我希望有人能帮我找到一个更好的解决方案,为新创建的meta页面设置默认值
以下是完整代码:
function page_layout_metabox(){
add_meta_box( \'page_layout_selector\', \'Page Settings\', \'page_layout_selector\', \'page\', \'normal\', \'high\' );
}
function page_layout_selector(){
$layout = get_post_meta(get_the_ID(), \'layout\', true);
//set default
if ($layout == "") {
$layout = "layout_1";
}
?>
<div id="page_layout_container">
<p id="page_layout_title">Page layout</p>
<div class="radio_container">
<div class="form">
<label>
<input type="radio" name="layout" id="layout_1" value="layout_1" <?php if ($layout == "layout_1" ) echo "checked";?>>
<div class="radio" id="layout_1">
<span class="icon-on"></span>
</div>
</label>
</div>
<div class="form">
<label>
<input type="radio" name="layout" id="layout_2" value="layout_2" <?php if ($layout == "layout_2" ) echo "checked";?>>
<div class="radio" id="layout_2">
<span class="icon-on"></span>
</div>
</label>
</div>
<div class="form">
<label>
<input type="radio" name="layout" id="layout_3" value="layout_3" <?php if ($layout == "layout_3" ) echo "checked";?>>
<div class="radio" id="layout_3">
<span class="icon-on"></span>
</div>
</label>
</div>
</div>
</div>
最合适的回答,由SO网友:CodeMascot 整理而成
是的。看来一切都是对的。但我更喜欢-
if (empty($layout)) {
$layout = "layout_1";
}
而不是这个-
if ($layout == "") {
$layout = "layout_1";
}
测试变量是否为空是首选方法。我也更喜欢-
if ($layout === "layout_1" ) echo "checked"
if ($layout === "layout_2" ) echo "checked"
if ($layout === "layout_3" ) echo "checked"
而不是这个-
if ($layout == "layout_1" ) echo "checked"
if ($layout == "layout_2" ) echo "checked"
if ($layout == "layout_3" ) echo "checked"
否则,这似乎很正常。希望这对你有帮助。