I created a wordpress plugin with Configurations link which was working fine in WordPress 2.7. Version 5.8 brings some additional security measures that create Configurations link exhibiting message: You don't have sufficient permissions to gain access to this site.

This is actually the API hook I personally use to produce link:

function folksr_plugin_action($links, $file) {
    if (strstr($file, 'folksr/folksr.php')) {
        $fl = "<a href=\"options-general.php?page=folksr/settings.php\">Settings</a>";
        return array_merge(array($fl), $links);
    return $links;

add_filter('plugin_action_links', 'folksr_plugin_action', 10, 2);

Full source code offered at plugin page.

Configurations screen doesn't contain any extra logic, just a few options and HTML echoed towards the screen.

Suprisingly enough, Codex doesn't return anything for search term "wordpress plugin_action_links". Are you able to provide example or point me to working code for Configurations link in Plug ins menu?

I discovered the reply to my very own problem by examining causes of some random plug ins. I have to admit - how much of an unpleasurable experience which was! However, here's the answer.

It works out that to be able to build Configurations link, it must be registered first. The next code is really a stub that does the secret:

class MyPlugin {

    public function __construct() {
        add_filter('plugin_action_links', array($this, 'renderPluginMenu'), 10, 2);
        add_action('admin_menu', array($this, 'setupConfigScreen'));

    public function renderPluginMenu() {
        $thisFile = basename(__FILE__);
        if (basename($file) == $thisFile) {
            $l = '<a href="' . admin_url("options-general.php?page=MyPlugin.php") . '">Settings</a>';
            array_unshift($links, $l);
        return $links;

    public function setupConfigScreen() {
        if (function_exists('add_options_page')) {
            add_options_page('MyPlugin settings', 'MyPlugin', 8, basename(__FILE__), array($this, 'renderConfigScreen'));

    public function renderConfigScreen() {
        include dirname(__FILE__) . '/MyPluginSettings.php';


I've working admin menu links on my small plug ins employed in 2.8+. My function appears like this:

  function plugin_action_links( $links, $file ) {
    if ( $file == plugin_basename(__FILE__) )
      $links[] = '<a href="' . admin_url( 'options-general.php?page=lj-longtail-seo/lj-longtail-seo.php' ) . '">Settings</a>';

    return $links;

My add_filter lines are mostly identical. I believe the very first factor to test is adding using the admin_url function.

Hope that can help.