使用默认值创建自定义元框

时间:2016-08-22 作者:István

我正在创建一个自定义管理面板,管理员可以使用单选按钮在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>

1 个回复
最合适的回答,由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" 
否则,这似乎很正常。希望这对你有帮助。

相关推荐

如何在WordPress开发中添加带有ACF自定义字段ID的自定义metabox字段

我是wordpress开发的新手,我在我的项目中安装了高级自定义字段插件,并创建了两个文本字段名称&;我还创建了一个插件,可以在帖子中创建一个带有文本框的元框。现在在帖子中,我将获得自定义字段名称(&A);电子邮件和我的自定义元框旁边将出现,但我必须将我的元框附加到名称字段旁边,即在名称字段和电子邮件字段之间。我的metabox代码如下。请任何人帮帮我//Creating the custom meta box function my_notice_meta_box() {