如何修复‘调用未定义的函数do_sets()’错误?

时间:2013-08-18 作者:Radek

我正在编写我的第一个插件,要访问/保存我遵循的选项codex.wordpress.org/Creating_Options_Pages 我基本上是在一个单独的文件中复制了“一起看”的示例mhomepage_admin_menu.php

插件的主代码如下

if ( is_admin() ){ // admin actions
    add_action(\'admin_menu\', \'add_plugin_admin_page\' );
    add_action(\'admin_init\', \'register_mhomepage_settings\' );

} else {
  // non-admin enqueues, actions, and filters
}

function register_mhomepage_settings() { // whitelist options
  register_setting( \'mhomepage_option_group\', \'left_right_margin_option\' );
  register_setting( \'mhomepage_option_group\', \'top_margin_option\' );
  register_setting( \'mhomepage_option_group\', \'include_comments_option\' );
}  

function add_plugin_admin_page($plugin_name) {
    add_menu_page( \'mHomePage\', \'mHomePage\', \'manage_options\', \'mhomepage/mhomepage_admin_menu.php\', \'\', \'\', 6 );

}
以及mhomepage_admin_menu.php 看起来像

<div class="wrap">
<h2>Your Plugin Name</h2>

<form method="post" action="options.php">
    <?php settings_fields( \'mhomepage_option_group\' ); ?>
    <?php do_settings( \'mhomepage_option_group\' ); ?>
    <table class="form-table">
我有很多问题

Q1:如何修复错误<form method="post" action="options.php">? 是吗mhomepage_admin_menu.php?

3 个回复
最合适的回答,由SO网友:Charles Clarkson 整理而成

问题1:[H]如何修复错误?

停止调用do_settings() 此行中的函数。它不是WordPress函数,显然也不是您定义的函数。也许你是想用these functions.

<?php do_settings( \'mhomepage_option_group\' ); ?>
问题2:[W]中的正确文件名是什么<form method="post" action="options.php">?

options.php

SO网友:Jacob Proulx

为了使设置函数存在于环境中,您需要在管理挂钩中使用该函数。例如:add_action(\'admin_menu\', \'your_function_name\');

SO网友:Michael

检查WP错误修复插件http://wordpress.org/plugins/wp-bug-tracker/. 它可以自动修复此类错误。我正在使用它,效果很好。

结束

相关推荐

通过根目录中的.htaccess有选择地禁用PHP

我正在阅读有关保护WordPress的内容,其中一个常用的建议技巧是使用。禁止在中执行PHP的htaccess文件wp-content 和wp-includes. 然后我读到another hack 这涉及放置在根目录中的后门文件。这让我想到了如何扩展这项技术。这样做有意义吗:在根目录中。htaccess:<Files *.php> Order Deny,Allow Deny from all </Files> <Fi