Php 开发插件时出现Wordpress错误-“;您没有足够的权限访问此页面。”;

Php 开发插件时出现Wordpress错误-“;您没有足够的权限访问此页面。”;,php,wordpress,Php,Wordpress,我刚刚开始学习wordpress插件开发,当我从管理员访问我的插件菜单时,出现了这个错误 代码如下:importer.php //*************** Admin function *************** function oscimp_admin() { include('importer_admin.php'); } function oscimp_admin_actions() { add_options_page("OSCommerce Product

我刚刚开始学习wordpress插件开发,当我从管理员访问我的插件菜单时,出现了这个错误

代码如下:importer.php

//*************** Admin function ***************
function oscimp_admin() {
    include('importer_admin.php');
}

function oscimp_admin_actions() {
    add_options_page("OSCommerce Product Display", "OSCommerce Product Display", 1, "OSCommerce Product Display", "oscimp_admin");
}

add_action('admin_menu', 'oscimp_admin_actions');
importer_admin.php

<div class="wrap">
<?php    echo "<h2>" . __( 'OSCommerce Product Display Options', 'oscimp_trdom' ) . "</h2>"; ?>

<form name="oscimp_form" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
    <input type="hidden" name="oscimp_hidden" value="Y">
    <?php    echo "<h4>" . __( 'OSCommerce Database Settings', 'oscimp_trdom' ) . "</h4>"; ?>
    <p><?php _e("Database host: " ); ?><input type="text" name="oscimp_dbhost" value="<?php echo $dbhost; ?>" size="20"><?php _e(" ex: localhost" ); ?></p>
    <p><?php _e("Database name: " ); ?><input type="text" name="oscimp_dbname" value="<?php echo $dbname; ?>" size="20"><?php _e(" ex: oscommerce_shop" ); ?></p>
    <p><?php _e("Database user: " ); ?><input type="text" name="oscimp_dbuser" value="<?php echo $dbuser; ?>" size="20"><?php _e(" ex: root" ); ?></p>
    <p><?php _e("Database password: " ); ?><input type="text" name="oscimp_dbpwd" value="<?php echo $dbpwd; ?>" size="20"><?php _e(" ex: secretpassword" ); ?></p>
    <hr />
    <?php    echo "<h4>" . __( 'OSCommerce Store Settings', 'oscimp_trdom' ) . "</h4>"; ?>
    <p><?php _e("Store URL: " ); ?><input type="text" name="oscimp_store_url" value="<?php echo $store_url; ?>" size="20"><?php _e(" ex: http://www.yourstore.com/" ); ?></p>
    <p><?php _e("Product image folder: " ); ?><input type="text" name="oscimp_prod_img_folder" value="<?php echo $prod_img_folder; ?>" size="20"><?php _e(" ex: http://www.yourstore.com/images/" ); ?></p>


    <p class="submit">
    <input type="submit" name="Submit" value="<?php _e('Update Options', 'oscimp_trdom' ) ?>" />
    </p>
</form>
</div>


在oscimp_admin()函数中编写importer_admin.php文件代码,或使用php file_get_contents函数。

我刚刚尝试用basename(_file_)更改添加选项页面中的第四个参数;在您的案例中,应该与“importer.php”的值相同。我不知道到底应该改成什么,但这是工作


祝你好运

问题是第四个参数。 我已经用u删除了第四个参数中的空格,它可以工作了


感谢您的帮助……

可以找到实际的教程。而且它应该和Wordpress的2.9.2版本一起工作,至少对我来说是这样。但是,当我尝试用3.1版运行教程的代码时,它会给我同样的错误。但正如阿维纳什所说

add_options_page(“OSCommerce Product Display”, “OSCommerce Product Display”, 1, “OSCommerce Product Display”, “oscimp_admin”);
应替换为

add_options_page(“OSCommerce Product Display”, “OSCommerce Product Display”, 1, “OSCommerce_Product_Display”, “oscimp_admin”);
然后它就能正常工作了。希望它能帮助一些人

更新


如Francisco Corrales在下面的评论中所说的,你可以考虑停用插件并激活它,如果你没有看到变化。

< P>是的,第四个参数是唯一的名字,对于任何唯一的标识符,它应该包含空间,这是问题:

WordPress 3.61.甚至没有下划线的工作。该功能现在应该是:

function oscimp_admin_actions() {
    add_options_page("OSCommerce Product Display", "OSCommerce Product Display", 1, "OSCommerceProductDisplay", "oscimp_admin");
}

此错误的一个可能原因是实际上在
admin\u init
操作挂钩上注册了管理菜单,而不是
admin\u菜单
。这里的情况并非如此,但分享这些信息很好,因为我花了几个小时才弄明白

因此,请始终这样注册菜单(并从唯一的slug中删除空格或任何其他非字母数字字符-函数
添加选项页面()
4th参数):

最初

add_action('admin_menu', 'your_function');
然后(首先检查函数是否存在)


请注意使用
\uu()
函数,而不是直接放置标题-这是插件国际化所必需的(如果没有国际化文件,它将显示引用的文本)。

教程。这一变化对我来说没什么区别。请说得更清楚一点,我花了5分钟的时间在这些台词上。需要补充的是,您需要取消激活插件,然后重新激活。谢谢Francisco Corrales。在回答中添加了您的评论。顺便说一句,我可以知道你在这个插件中使用的是哪个WP版本吗?我使用的是3.8 Wordpress+我很抱歉我不得不说:谢谢你!;)
if (!function_exists('your_function')) {
    function your_function() {
        add_options_page(__("Option page name","your-text-domain"), __("Option page name","your-text-domain"), 'manage_options', 'your-page-unique-slug', 'other_function');
    }
}