获取致命错误:未捕获错误:链接到WordPress插件中的另一个文件时调用未定义的函数plugin_dir_path()

时间:2020-05-28 作者:wafutech

我创建了一个插件TESTPLUGIN 并将其添加到wordpress管理菜单中。我可以从管理菜单访问插件。我遇到的问题是如何链接到插件中的另一个文件。文件成员。php由add菜单回调函数加载。在此成员中。php我想添加一个链接以显示\\u成员。php在单击成员名称时加载单个成员。两个文件都在一个目录下。

`<a href="<?php echo  plugin_dir_url(__FILE__).\'show_member.php?id=4\';?>">John Smit`h</a>
the url resolves to  **http://localhost/mywebsite/wp-content/plugins/myplugins/views/members.php** which is the correct path of show_member.php
但是,当我单击链接时,收到以下错误消息:Uncaught Error: Call to undefined function plugin_dir_path() in C:\\xampp\\htdocs...我也尝试过plugins\\u url(),但遇到了相同的错误。有人能指导我如何链接到wordpress插件中的另一个文件吗。我做错了什么?谢谢

1 个回复
最合适的回答,由SO网友:wafutech 整理而成

我使用admin\\u url()wordpress函数解决了这个问题。为了链接到插件中的另一个页面,甚至链接到我项目中的另一个插件,我将注册的url传递给admin\\u url()函数。

<a href="<?php echo  admin_url(\'admin.php?page=edit-member-page&id=\'.$id);?>">John Smit`h</a>
//传递给链接的$id变量将使用`$\\u GET[\'id\']检索;edit\\u成员上的superglobal。phpBut第一个url sluf:edit-member-page 首先应该在插件或函数中注册。php

in my plugin main

 //add menu call back
    function load_edit_member_page_callback(){
    include_once("edit_member.php")
    }
//add admin menu action
add_action(\'admin_menu\',\'register_edit_member_fun\');
//implement register_edit_member_fun function
function register_edit_member_fun(){
add_menu_page(
    \'edit member\', //page title
    \'\', //menu title (I left it blank because  I don\'t want the menu to appear to users. I just need to make use of the slug to link internally
    \'manage_options\', //capability
    \'edit-member-page\', //slug, this is what I passed to hre attribute above
    \'load_edit_member_page_callback\',//callable function


    );
}
希望这对别人有帮助。