代码之家  ›  专栏  ›  技术社区  ›  Michał Niedźwiedzki

插件\操作\链接在WordPress 2.8中不起作用+

  •  1
  • Michał Niedźwiedzki  · 技术社区  · 16 年前

    这是我用来创建链接的API挂钩:

    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);
    

    完整的源代码可在 plugin page

    设置屏幕不包含任何附加逻辑,只是几个选项和HTML回显到屏幕上。

    令人惊讶的是,Codex并没有为搜索短语“plugin\u action\u links”返回任何内容。你们能提供一个例子或者给我指出插件菜单中设置链接的工作代码吗?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Michał Niedźwiedzki    16 年前

    我通过分析一些随机插件的来源,找到了解决我自己问题的方法。我必须说——那是多么不愉快的经历啊!但是,嘿,这是解决办法。

    事实证明,为了构建设置链接,需要先注册它。以下代码是一个执行此操作的存根:

    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';
        }
    
    }
    
        2
  •  1
  •   Littlejon    16 年前

      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;
      }
    

    我的 add_filter admin_url 功能。

    希望有帮助。

    推荐文章