向主题选项添加一系列复选框

时间:2010-12-19 作者:Denis Belousov

嗨,我做了一个主题选项this tutorial

此选项具有multicheck type by复选框。我不知道该怎么做。我正在尝试使用此多重检查排除页面。这是我的阵列,具有以下选项:

$pages = get_pages(\'sort_column=post_parent,menu_order\');
$pageids = array();
    foreach ($pages as $page) {
        $pageids[$page->ID]= $page->post_title;
    }
array( "name" => "Exclude page",
        "desc" => "",
        "id" => $shortname."_excludepage",
        "type" => "multicheck",
        "options" => $pageids,
        "std" => ""),
此屏幕显示此函数在my DB中的外观:

http://i.stack.imgur.com/QFwV7.png
512 是我试图排除的页面的ID。

在管理中如下所示:

http://i.stack.imgur.com/31TQa.png
在我的模板中,我使用了此标准排除方法:

wp_list_pages("exclude=get_option(\'src_excludepage\'));
请帮我完成这个功能!非常感谢。

2 个回复
SO网友:t31os

想要一些诚实的建议吗?从更好的代码库工作。。

虽然,这不是你的错,有数百个博客有类似代码的变体,我不知道它起源于哪里,但我看到类似的代码“很多”。。。

如果您不需要牵手就可以通过良好的代码库进行管理,我建议您:。。

http://themeshaper.com/sample-theme-options/

这不是最高级的例子,但方法很好,它只使用一个选项来存储所有值,还使用设置api来处理选项。

SO网友:onetrickpony

假设后端正常工作,并且可以检查多个字段,并且字段值确实存储为一个数组,请使用:

$exclude = get_option(\'src_excludepage\');
wp_list_pages(array(
      "exclude" => implode(\',\', $exclude[\'options\']),
   ));
附言:你使用的教程有一种非常奇怪的处理“多重检查”的方式。一种更简单的方法是附加[] 在复选框中输入名称。。。

Update:

mytheme_admin() 函数添加另一个案例:

 case "page_multicheck":
  option_wrapper_header($value);

  $pages = get_pages(\'sort_column=post_parent,menu_order\');
  $pageids = array();
  foreach ($pages as $page){
    $pageids[$page->ID] = $page->post_title;

    $input_id = $value[\'id\'] . \'_\' . $page->ID;
    $checkbox_setting = get_settings($value[\'id\']);
    if (in_array($page->ID, $checkbox_setting)) $checked = "checked=\\"checked\\""; else $checked = "";
     ?>
     <input type="checkbox" name="<?php echo $value[\'id\']; ?>[]" id="<?php echo $input_id; ?>" <?php echo $checked; ?> />
     <label for="<?php echo $input_id; ?>"><?php echo $page->post_title; ?></label
     ><br />
     <?php
  }
  option_wrapper_footer($value);
  break;
$options 数组删除旧选项并添加:

  array("name" => "Exclude page",
        "desc" => "",
        "id" => $shortname."_excludepage",
        "type" => "page_multicheck",
        "options" => array(),
        "std" => ""),
现在,理论上我上面的代码应该可以工作了。。。

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?