进入高级插件开发阶段,我一直在关注Plugin Handbook 但我没有看到它提到如何引用已添加到设置页面的内容。例如,当您访问sample settings page 创建的菜单为:
function wporg_options_page() {
// add top level menu page
add_menu_page(
\'WPOrg\',
\'WPOrg Options\',
\'manage_options\',
\'wporg\',
\'wporg_options_page_html\'
);
}
在此页面上有一个字段:
function wporg_field_pill_cb($args) {
// get the value of the setting we\'ve registered with register_setting()
$options = get_option(\'wporg_options\');
// output the field
?>
<select id="<?= esc_attr($args[\'label_for\']); ?>"
data-custom="<?= esc_attr($args[\'wporg_custom_data\']); ?>"
name="wporg_options[<?= esc_attr($args[\'label_for\']); ?>]"
>
<option value="red" <?= isset($options[$args[\'label_for\']]) ? (selected($options[$args[\'label_for\']], \'red\', false)) : (\'\'); ?>>
<?= esc_html(\'red pill\', \'wporg\'); ?>
</option>
<option value="blue" <?= isset($options[$args[\'label_for\']]) ? (selected($options[$args[\'label_for\']], \'blue\', false)) : (\'\'); ?>>
<?= esc_html(\'blue pill\', \'wporg\'); ?>
</option>
</select>
<p class="description">
<?= esc_html(\'You take the blue pill and the story ends. You wake in your bed and you believe whatever you want to believe.\', \'wporg\'); ?>
</p>
<p class="description">
<?= esc_html(\'You take the red pill and you stay in Wonderland and I show you how deep the rabbit-hole goes.\', \'wporg\'); ?>
</p>
<?php
}
如果我想创建一个小部件来引用
wporg_field_pill_cb
功能我浏览了标签
add-menu-page 和
add-submenu-page 但我看不到什么坚实的东西。当我引用时
文档中的何处讨论了如何引用该设置页面中使用的内容?是否调用注册设置
wporg_options
在里面
widget()
?
如果不清楚,我深表歉意,但我的目标是学习如何在子菜单或顶部菜单中创建一个表单,其中的设置将由小部件引用或由小部件呈现。我以上面的设置插件为例,查看在设置页面中我将使用什么来获取所选的选项值。
最合适的回答,由SO网友:Mark Kaplun 整理而成
该代码中演示了设置API的用法,该API旨在用作创建设置页面的框架,从而更新选项中的值。
小部件设置是更抽象的级别。它们存储在选项中,但存储方式没有灵活性,它们都存储为设置的大部分常量字段的数组,其中索引是小部件标识符。
这个抽象概念widgets API 遵循与设置API不同的流。
打电话没问题get_option
您需要它的任何地方都可以使用小部件代码,但这是您可能需要的唯一集成。
您不应该在保存小部件时设置选项,因为这种副作用会让用户感到困惑,而定制者会(不记得为什么)抱怨。
您可以管理小部件是一个设置页面,但小部件的存储和检索方式是核心中文档记录最少的领域之一,虽然这肯定是可能的,但它并不是很琐碎,我不记得有人这样做过。