如何将新选项类型添加到选项树?

时间:2013-06-26 作者:JPollock

我在主题模式和子主题模式中使用选项树,并尝试添加新的选项类型。新选项类型将基于post select选项类型,但仅列出特定类别中的帖子。

我创建了一个新文件,并将其添加到从ot loader的第178行开始的要包含的文件数组中。php。在新文件中,我剪切并粘贴了从/includes/ot functions options type的第905行开始的post select选项类型。php。您可以看到此新文件here.

在我的post select选项类型中,我在函数名后面附加了一个唯一的slug。我还将该段代码放在css类上。键入“格式外部设置包装器”的post select。在post query post数组中,我添加了一个category参数。

然后,我将新的帖子选择选项类型添加到主题选项中,希望它只显示我设置的类别中的帖子。它显示了所有类别的帖子。有趣的是,这个选项被包装了起来。键入post select。我还创建了一个常规的post select,它没有经过修改的css。

作为一个实验,我厌倦了以同样的方式将category参数添加到原始的post select选项中,它完全按照我的预期工作——只显示来自该类别的帖子。不幸的是,我需要创建6个新帖子,每个帖子都显示不同类别的帖子。

很明显,我错过了一步,但就我的一生而言,我找不到它。我找了其他需要注册选项类型的地方,但找不到。。。

1 个回复
SO网友:Derek Herman

无需在OptionTree中编辑核心文件,即可完成您正在尝试的操作。将自定义选项类型函数添加到主题中functions.php 以及以下代码。

/**
 * Filter to add custom option types.
 *
 * @param     array     An array of option types.
 * @return    array
 */
function add_custom_option_types( $types ) {

  $types[\'post_select_a_1\'] = \'Post Select option type. (_a_1)\';
  $types[\'post_select_a_2\'] = \'Post Select option type. (_a_2)\';
  $types[\'post_select_a_3\'] = \'Post Select option type. (_a_3)\';
  $types[\'post_select_a_4\'] = \'Post Select option type. (_a_4)\';
  $types[\'post_select_a_5\'] = \'Post Select option type. (_a_5)\';
  $types[\'post_select_a_6\'] = \'Post Select option type. (_a_6)\';

  return $types;

}
add_filter( \'ot_option_types_array\', \'add_custom_option_types\' );
这将自动将您的函数加载到OptionTree中,您无需编辑任何核心文件。添加新选项时,有两个要求。第一,所有函数都必须以ot_type_. 第二,当添加到选项数组时,新数组键需要与函数名减号匹配ot_type_, 您可以使用-_ 创建密钥时。因此,如果您有一个名为ot_type_super_awesome 您可以使用以下任一方法将其添加到筛选数组:

$types[\'super_awesome\'] = \'Super Awesome\';

$types[\'super-awesome\'] = \'Super Awesome\';
我希望这能消除任何困惑。旁注有两个ot_type_post_select_a_5 在您创建的文件中,我假设最后一个应该是ot_type_post_select_a_6. 干杯

结束

相关推荐

在wp_Options的一个设置字段中可以存储的选项数量是否有限制?

我有一个带有选项页的主题。在这一页上有1083个选项。我注意到最后13个没有保存。它们一度保存了,但在我添加了新选项之后,它们停止了工作。我怀疑我可能遇到了某种选项限制或阵列上的限制,为了测试这一点,我删除了最后13个选项上方的7个选项,并确保在这之后保存了足够多的7个选项。我一直在试图找到有关这方面的信息,但一直无法找到。是否有人知道您在一个设置字段中只能有1070个选项?这不是数据库长文本内存限制的问题。这些是简单的1和0以及十六进制颜色值和其他CSS类型的内容。该字段的输出量仅为33k。