Programming and machines
As machines are "stupid", they need to be programmed. And programming languages don't work like languages spoken by humans as programs/machines as they can't interpret what the human thinks. They need a clear and unique advice what and when to something we order them. If you for e.g. define the function
getBlock() twice, the machine would
Exception to handle that failure and notify the human about his error. The machine will not even question if it should
return you a building block or a solid square sided something. Therefore this isn't possible (in this case) and you have to stick to the rule that the program needs a clear advice that gives it some argument/parameter that is within the boundaries of what it expects.
The needed argument within the boundaries
As the program told you, it needs a
callback, which is either a
function or a
array( 'ObjectName', 'methodName' ). So you have to feed it with one or the other.
A work around
As you can do nearly everything within a function or method, you can as well advice it to load your file. Depending on the way you load it, you can either just
include that file or
redirect to it:
# You can simply load them...
# (Both are equal in what they do, but not in how they handle errors)
// require_once 'admin-members.php';
// include_once 'admin-members.php';
# Or replace the current page with the desired file
exit( wp_redirect( get_stylesheet_uri().'admin-members.php' ) );