Questions tagged «settings-api»

在WordPress 2.7中添加的Settings API,允许对包含设置表单的管理页面进行半自动管理。它使您可以定义设置页面,这些页面中的部分以及这些部分中的字段。可以注册新的设置页面以及其中的部分和字段。也可以通过注册新的设置部分或其中的字段来添加现有设置页面。

1
带有数组的设置API示例
我将Wrox WordPress插件开发书用作开始使用新插件的主要参考资料,并且我了解所有设置都可以另存为1个数组,但是书中并未提供有关此示例以及我所从事的所有工作的示例从一个例子到另一个例子,在网络上查找似乎是如此不同。康斯坦丁(Konstantin)发表的文章的后半部分让我很接近,但是我真的很想看到一个包含多个字段的更完整的示例。

2
将多个自定义字段添加到常规设置页面
我想做的是在常规设置中添加一些自定义字段。这是我正在使用的代码。一切正常,但我只是想不出如何添加更多字段。 我现在想创建两个字段,一个用于电话号码,第二个用于地址: function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); add_settings_field('my_first_field', '<label for="my_first_field">'.__('My Field' , 'my_first_field' ).'</label>' , 'print_custom_field', 'general'); } function print_custom_field() { $value = get_option( 'my_first_field', '' ); echo '<input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" />'; } add_filter('admin_init', 'register_fields'); 我设法使它适用于多个字段的唯一方法是复制所有内容。 因此,它看起来像这样: function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); …

2
设置API与主题自定义程序
此问题已从WordPress开发元堆栈交换迁移,因为可以在WordPress开发元堆栈交换中回答。 迁移 6年前。 什么时候使用设置API,什么时候使用主题定制器更好? 整个上午都在Google上搜索过,所以我找不到关于此问题的任何经过深思熟虑的最新指南。虽然还为时过早,但我认为主题定制器是引入更多类似Squarespace的编辑功能的暗示性第一步。有谁知道有计划退出设置API以支持主题定制程序的计划吗?我们是否应该慢慢地朝着它前进,还是最好还是坚持使用设置API?他们可以并肩生活吗?如果可以,责任分工在哪里?

5
OOP插件的设置页面提交中的“错误:未找到选项页面”
我正在使用Tom McFarlin的Boilerplate存储库作为模板开发一个插件,该模板利用了OOP实践。我一直在试图弄清楚为什么我无法正确提交我的设置。我尝试按照此处另一个问题的建议将action属性设置为空字符串,但这没有帮助... 以下是我正在使用的常规代码设置... 表格(/views/admin.php): <div class="wrap"> <h2><?php echo esc_html( get_admin_page_title() ); ?></h2> <form action="options.php" method="post"> <?php settings_fields( $this->plugin_slug ); do_settings_sections( $this->plugin_slug ); submit_button( 'Save Settings' ); ?> </form> </div> 对于以下代码,假定除了“ option_list_selection”外,所有add_settings_field()和add_settings_section()的回调都存在。 插件管理类(/{plugin_name}-class-admin.php): namespace wp_plugin_name; class Plugin_Name_Admin { /** * Note: Some portions of the class code and method functions are …

1
如何将参数从add_settings_field()传递给回调函数?
我有这样的功能: add_settings_field( 'contact_phone', 'Contact Phone', 'settings_callback', 'general'); 这样可行。它调用settings_callback。凉。我遇到的问题是:如果我正在做的事情只是回声一点,我不想为每个添加的设置都定义一个回调函数。 function settings_callback() { echo '<input id="contact_phone" type="text" class="regular-text" name="contact_phone" />'; } 我到底为什么要这样做?id,class和name都应该是params。 没有办法将参数传递给settings_callback函数吗?我开始研究核心,到达这里:http : //core.trac.wordpress.org/browser/tags/3.1.3/wp-admin/includes/template.php ..并进入此$ wp_settings_fields全局字段。在哪里定义?

3
如何将变量传递给add_settings_section()回调?
我正在尝试尽可能自动地执行插件中每个设置的Settings API函数调用。循环遍历options数组,然后输出add_settings_section()和add_settings_field()很简单: add_settings_section(): $oenology_hooks_tabs = oenology_hooks_get_settings_page_tabs(); foreach ( $oenology_hooks_tabs as $tab ) { $tabname = $tab['name']; $tabtitle = $tab['title']; $tabsections = $tab['sections']; foreach ( $tabsections as $section ) { $sectionname = $section['name']; $sectiontitle = $section['title']; $sectiondescription = $section['description']; // Add settings section add_settings_section( 'oenology_hooks_' . $sectionname . '_section', $sectiontitle, 'oenology_hooks_' …

2
get_option函数是否已缓存?
在我的插件中,我使用以下代码从数据库中检索选项: $options = get_option('my_plugin_options'); 如果我在插件的各种功能中使用了10次,WordPress是否会对数据库进行10次查询,还是每个HTTP请求仅进行1次数据库调用并缓存结果?

3
设置API有什么优势?
首先,我要说我几乎不使用WordPress,实际上,我最后一次在WordPress中创建网站是在2.2期间。昨天我把所有东西弄得一团糟,在这里问了几个问题,试图使基本的菜单插件正常工作。 现在,我的插件可以正常运行,并且性能完全符合我的预期,因此我决定在此进行一些小的更改以增加功能和兼容性-包括使用Settings API。但是,阅读此API教程的时间很短,我感到非常困惑,然后,当我继续阅读并尝试实现示例时,这种困惑就加深了-由于我的插件被实现为类,这变得更加困难。 除非我做错了事,否则据我所知,要使用Settings API,需要创建一个新的功能PER SETTING。这意味着平均每个插件需要3-5个功能,而更多高级插件则需要多达数百个功能。当您可以很容易地将所有适用的$_POST变量导入数组并放弃整个混乱时,编写这么多函数(开发一个命名系统以免混淆)似乎很荒谬。 也许我是过时的,但是除非能从中受益,否则我看不出将我编写的代码增加三倍或四倍的原因。这是在尝试添加Settings API之前我如何管理选项的方法: function __construct() { /* constructor stuff */ $this->options = $this->db_options = get_option( 'de-menu-options' ); if( $this->options === false ){ $this->options = $this->defaults; } if (is_admin()) { add_action('admin_menu', array(&$this, 'admin_menu')); } /* more stuff */ // When WordPress shuts down we store changes …

1
自定义帖子类型设置页面,选择页面以显示存档
因此,我遵循了该帖子的公认答案。可以为“自定义帖子类型”的“首页显示”设置添加其他设置 但并非完全有效,因此必须与本文中已接受的答案进行比较。 无法输出do_settings_sections。不明白为什么 现在,它实际上使用以下代码工作 //Add settings to menu add_action( 'admin_menu', 'events_options_add_page' ); function events_options_add_page() { // add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page'); add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page'); } ///wordpress/32689/possible-to-add-another-setting-to-front-page-displays-setting-for-custom-post //Fix Cap to allow editors to edit theme options function events_get_options_page_cap() { return 'edit_posts'; } add_filter('option_page_capability_events-options', …

1
保存主题选项后运行功能?
奇怪的问题,保存主题设置后如何运行自定义功能?我看到register_settings()函数具有清理回调,但该回调在更改设置之前运行。保存它们后,我需要运行一些东西。我可以使用某个动作或过滤器来执行此操作吗? 编辑- 所以我做了这个设置: add_settings_section( 'kjd_body_background_settings_section', // ID hook name null, // label null, // function name 'kjd_body_background_settings' // page name ); add_settings_field( 'kjd_body_background_colors', // ID hook name null, //label null, //callback 'kjd_body_background_settings', // page name 'kjd_body_background_settings_section' // parent section ); 和这个功能: function kjd_update_stylesheet( $oldvalue, $_newvalue ){ echo 'updated!'; die(); } …

1
如何使用插件选项页面的设置API保存多选数组?
我想这可能是我的PHP而不是设置API的问题,但我似乎无法让Wordpress为多选框保存数据数组。 多选框对应于自定义元字段,而选择选项是将显示该元字段的自定义帖子类型。 这是显示代码: case 'select2': echo "<select id='$id' style='width:15em;height:10em;' class='select$field_class' name='" . $buddha_option_name . "[$id]' multiple>"; foreach($choices as $item) { $item = explode("|",$item); $item[0] = esc_html($item[0], 'buddha_textdomain'); $selected = ($options[$id]==$item[1]) ? 'selected="selected"' : ''; echo "<option value='$item[1]' $selected>$item[0]</option>"; } echo "</select>"; echo ($desc != '') ? "<br /><span class='description'>$desc</span>" : …

3
WordPress设置API,在“自定义菜单”页面上实现选项卡
我一直在关注这个人的WordPress设置API教程系列: http://wp.tutsplus.com/tutorials/theme-development/the-complete-guide-to-the-wordpress-settings-api-part-1/ 到目前为止,我已经成功完成了基本工作。现在,在实现选项卡时,我面临问题。 问题1:选项卡不起作用。所有字段都显示在两个选项卡上。第1部分应显示在选项卡1上,第2部分应显示在选项卡2上。 问题2:选项2未保存。在实施制表符之前,它运行良好。 码: /* ----------------------------------------------------------------------------- */ /* Add Menu Page */ /* ----------------------------------------------------------------------------- */ function add_my_menu() { add_menu_page ( 'Page Title', // page title 'Menu Title', // menu title 'manage_options', // capability 'my-menu-slug', // menu-slug 'my_menu_page', // function that will render its output get_template_directory_uri() . '/assets/ico/theme-option-menu-icon.png' // …

1
按下设置按钮时触发自定义操作
这是我的第一个wordpress插件,在使其正常工作时遇到了很多麻烦,它几乎可以正常工作,但是我找不到实现此特定目的的方法。 基本上,我有插件的自定义设置页面,它可以毫无问题地保存所有内容,但问题是,如何才能使我的其他按钮(在同一设置页面内)触发这种情况下的同步操作。 因为我的插件在配置后会触发另一个在表上创建/更新记录的操作,但是我第一次需要运行同步来从wordpress的旧帖子中创建/更新记录。 编辑: wsd-parse-api上的插件源代码。

2
多站点中的设置API-缺少更新消息
当我在多站点安装中使用设置API且选项页面位于网络级别时,将选项发布到options.php不起作用,因为管理页面位于,wp-admin/network而WP希望页面位于wp-admin。 我添加了一个功能,用于检查此WP安装是否为多站点安装(通过常量),如果是,则将表单的操作值更改为../option.php。这将保存选项“确定”,但会保存默认消息“设置已保存”。丢失(但是查询字符串包含settings-updated=true)。 关于如何使消息出现的任何想法?

2
如何将设置添加到“后台选项”页面?
我正在开发主题,我想向内置的后台选项页面添加一些额外的内容。我知道如何使用设置API创建新的主题选项和设置,但似乎无法弄清楚它实际在哪里调用后台页面。我已经搜索完了wp-includes/theme.php,但那里除了调用后台函数之外没有什么,实际上没有任何东西可以渲染页面。 不能采取行动吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.