Questions tagged «options»

在WP中,“选项”是用于存储在数据库中的变量的术语。可通过选项API访问它们。

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
如何使用选项页中的复选框和单选按钮?
叫我愚蠢,但我不知道该怎么做。对于文本输入,我只是: <input type="text" name="option_name" value="<?php echo get_option( 'option_name' ); ?>" /> 然后使用将其挂接到workdpress中register_setting()。然后,我可以通过它获得其价值get_option('option_name')。我该如何使用复选框和单选按钮?
16 options 

3
为什么wp_options表在autoload上没有索引?
在WordPress服务的每个页面的开头,都有一个MySQL调用来获取选项: SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'; 因为autoload列上没有索引,所以MySQL必须查找所有行。 我还遇到了对此答案的评论,说即使有索引也不会提高性能。 在我的应用程序中,我使用了很多瞬态值来替代会话。他们的工作很棒,我有自己的垃圾回收程序。我注意到在wp_options表格中,我的瞬态值(以开头的值_transient_)都具有autoload=no。我期望wp_options表的行数会随着并发用户数的增加而增加。 我想知道为什么表格是这样设计的。我应该为我的特殊情况创建索引吗?

1
存储在多维数组中的更新选项
我wp_options表中的数据当前存储为多维数组(profile_element_order): a:12:{s:17:"img_base64_enable";s:1:"1";s:25:"moulding_combination_page";s:0:"";s:24:"moulding_collection_page";s:0:"";s:25:"idea_gallery_thumb_height";s:3:"200";s:24:"idea_gallery_thumb_width";s:3:"200";s:23:"collection_thumb_height";s:3:"200";s:22:"collection_thumb_width";s:3:"200";s:20:"profile_item_columns";s:1:"4";s:17:"idea_item_columns";s:1:"2";s:24:"collections_item_columns";s:1:"2";s:25:"combinations_item_columns";s:1:"4";s:21:"profile_element_order";a:5:{i:0;s:8:"Option 1";i:1;s:8:"Option 2";i:2;s:8:"Option 3";i:3;s:8:"Option 4";i:4;s:8:"Option 5";}} 我想要完成的是更新profile_element_order选项(在这些选项中)。到目前为止,这是所有内容的样子: function psort_save_order() { global $mouldings_options; $list = $mouldings_options['profile_element_order']; $new_order = $_POST['list_items']; $new_list = array(); // update order foreach($new_order as $v) { if(isset($list[$v])) { $new_list[$v] = $list[$v]; } } // save the new order update_option('profile_element_order', $new_list); die(); } add_action('wp_ajax_psort_update_order', 'psort_save_order'); 数据正确地发布到了DB表中(正如我可以看到的一些失败尝试那样,它们是新的选项条目,例如mouldings_settings->profile_element_order),我很难确定update_option()该特定选项的语法。我已经尝试过类似的事情(记住`mouldings_settings是实际的选项名称): mouldings_settings['profile_element_order'] $mouldings_options['profile_element_order'] …

4
如何以编程方式更新序列化选项?
我想自动更新插件选项。有些事情我会重复很多。 使用wp-cli,我知道我可以更新像这样的简单选项: php wp-cli.phar option update blog_public 1 但是,某些插件选项会将其选项保存在序列化字符串中。 wp_options中序列化的option_value的示例: a:9:{s:4:"from";s:21:"xx@xxx.com";s:8:"fromname";s:51:"xxx";s:4:"host";s:13:"smtp.xx.com";s:10:"smtpsecure";s:3:"ssl";s:4:"port";s:3:"465";s:8:"smtpauth";s:3:"yes";s:8:"username";s:21:"xx@xxx.com";s:8:"password";s:13:"xxx";s:10:"deactivate";s:0:"";} 如何更新这些选项?
15 options  wp-cli 

3
如何在“网络设置”屏幕上为新的站点范围选项添加字段?
我正在开发一个插件,其中的一部分涉及设置适用于WordPress网络中所有网站的选项值。我知道有关add_site_option和get_site_option函数的信息,这些函数使您可以将值保存到wp_sitemeta表中,但是我不知道如何将字段放置在WordPress后端的适当位置,以及如何拦截站点范围的保存值,以便在发生这种情况时插入add_site_option调用。 对于第一个问题(添加字段),通常使用设置API,特别是register_setting和add_settings_field,将新选项列入白名单,然后将其字段插入相应的选项页面。但是我无法在任何地方找到有关是否可以使用add_settings_field将字​​段添加到后端的新“网络管理”部分中的“设置”页面的信息,如果有替代功能可以对网络管理页面执行的操作,或者只需手动注入HTML。(您可以通过编写回显该字段的函数然后将该函数连接到“ wpmu_options”操作手动进行操作,该操作在Network Admin的“设置”页面的末尾运行。但是然后,您还必须处理随机数以及其他所有手动操作。) 第二个问题可能涉及找到一个操作,该操作在用户在“网络管理员设置”页面上单击“保存”时运行,但我还找不到。任何线索将不胜感激。 那么-有想法吗?是否有一种优雅的方法可以通过新的Network Admin区域管理插件的站点范围选项?如果是这样,怎么做?

1
选项和设置之间有什么区别?
我应该使用哪一个? Options API和Settings API有什么区别? 我有一个包含100多个管理选项的主题,我该如何注册和存储它们?目前,我正在使用Options API,但我对此不太满意,每个选项都单独注册,因此它们会创建很多数据库查询。 我目前看到三种存储WordPress选项/设置的方式: 1. Options API-旧的(最糟糕的方法)。 (我已经在使用这个了) <form method="post" action="options.php"> <?php wp_nonce_field('update-options'); ?> // all the inputs <input type="hidden" name="action" value="update" /> <input type="hidden" name="page_options" value="option1,option2,option3,..." /> <p class="submit"> <input type="submit" value="<?php _e('Save Changes') ?>" /> </p> </form> 然后在前端: echo get_option('option1'); 看起来很丑,我认为这不是存储大量选项的正确方法(我希望以某种方式将它们分组)。 2. Options API-1个选项作为一个大数组。 我不确定这里如何使用html表单更新此数组,有人吗?我相信它应该像这样: …
14 options 

6
如果删除wp_options表中的所有瞬时记录,是否会破坏我的站点?
我的网站目前在wp_options表中有50万多个临时记录。这导致该表经常崩溃,因此也是我的网站。 我认为临时记录将在一段时间后全部过期。我不确定哪个插件负责,什么出了问题。但是,我不希望我的网站经常像这样崩溃。wp_options几周前,表中的记录数量已总计增加到200k +,现在增加到500k +。 我是否应该只删除%transient_timeout%记录-目前超过200k? 任何帮助将不胜感激。 2012年7月16日更新 我实际上通过删除所有临时记录冒了风险(我先备份了我的网站),此后我的网站数据库就没有崩溃过:) 再次感谢大家!

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 …

5
在窗口小部件外部使用窗口小部件选项
我想在小部件选项中保存一些参数,然后将其传递到另一个页面。小部件是一种称为Web服务的表单。 我要传递的选项是当前已硬编码到结果页面(作为模板)中的Web服务的身份验证。因此,它们应该对网站用户隐藏。 来自小部件/插件的代码: function widget($args, $instance){ extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? 'Choose a service' : $instance['title']); $lineOne = empty($instance['username']) ? '' : $instance['username']; $lineTwo = empty($instance['password']) ? '' : $instance['password']; # Before the widget echo $before_widget; // etc... 结果页... $url = "http://www.nhs.uk/NHSCWS/Services/ServicesSearch.aspx?user=".[USERNAME]."&pwd=".[PASSWORD]."&q=".$_POST['PostCode']."&type=".$_POST['ServiceType'].""; 仍在学习WP如何挂在一起,因此对n00b问题感到抱歉。
13 options  widgets 

1
自动加载和选项表的性能
我在玩桌子的那autoload列options。我没有找到有关如何使用自动加载的值的太多信息。我尝试了一次print_r($GLOBALS),发现自动加载的选项存储在中$GLOBALS['wp_object_cache']->cache['options']['alloptions']。 还有另一种访问这些变量的方法吗? 假设我需要访问一个option my_option,它在不同的模板中多次设置为自动加载(例如,一次in header.php,一次in footer.php),建议使用哪种方法? 我可以从$GLOBALS数组中检索它吗(因为该值已经在此处) 我必须使用get_option('my_option')一次并再次全球化变量 get_option('my_option')每次使用(我看不出这样做的意义) 还有别的
12 options 

2
如何将小部件字段数据存储为数组?
我正在创建一个小部件,它需要存储大约10个ID。现在,我正在使用以下字段方法将每个ID存储在单独的字段中。它将每个字段的数据分别存储在wordpress中。是否可以使用数组将所有字段的数据仅存储在wordpress中的一行中以供示例? <input class="widefat" id="<?php echo $this->get_field_id('item1_id'); ?>" name="<?php echo $this->get_field_name('item1_id'); ?>" value="<?php echo $instance['item1_id']; ?>" /> <input class="widefat" id="<?php echo $this->get_field_id('item2_id'); ?>" name="<?php echo $this->get_field_name('item2_id'); ?>" value="<?php echo $instance['item2_id']; ?>" />

2
动态添加窗口小部件表单字段
我正在尝试将表单字段动态添加到WordPress小部件。因此,如果用户想为事件添加另一个日期,则可以单击按钮以获取更多字段。 问题是:如何将新创建的输入字段保存到我的数据库中? 我需要编写自定义更新功能吗?有小费吗? 这是小部件的外观: 这是我的小部件的php代码(到目前为止): class Spillelister extends WP_Widget { public function Spillelister() { $widget_options = array ( 'classname' => 'spillelister-widget', 'description' => 'Widget for å illustrere spillelister.'); parent::WP_Widget('spillelister_widget', 'Spilleplan', $widget_options); } // The actual widget user interface public function widget($args, $instance) { extract( $args, EXTR_SKIP); $title = ( $instance['title'] …

2
哪里可以在WordPress中安全地存储API密钥和密码?
我希望使用一些API,并且许多API都具有工作所需的密钥,私钥和密码。您可以在WordPress的何处存储该信息?假设有人可以破解您的数据库,那么WordPress可以使保存信息更加安全吗?另外,考虑一下经常更改这些键的功能,因此我需要在选项页面上更新键。 更新 Mossack Fonseca违反– WordPress Revolution Slider插件可能是原因 巴拿马文件:可通过WordPress入侵电子邮件,可通过Drupal入侵文档

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.