位于插件的子目录中的类中的操作链接

时间:2015-11-29 作者:LPH

如果插件中的操作链接类被放置在主插件中,则该类将正确加载。php文件。如果类被移动到位于插件子目录中的单独文件中,则类将加载,但操作链接无法加载到插件页面上。

class XenWord_Action_Links {

 public function __construct() {
    $this->load_filters();
 }

 public function load_filters() {
    $basename = plugin_basename( __FILE__ );
    $prefix = is_network_admin() ? \'network_admin_\' : \'\';
    add_filter( "{$prefix}plugin_action_links_$basename", array ( &$this, \'xenword_plugin_action_links\' ) );
 }

 public static function xenword_plugin_action_links( $links ) {
    $settings_links[] = \'<a href="\' . esc_url( admin_url( null, \'admin.php?page=xenword\' ) ) . \'">Settings</a>\';
    $settings_links[] = \'<a href="http://www.xenword.com" target="_blank">Docs</a>\';

    array_unshift( $links, $settings_links );

    return $links;
 }

}

new XenWord_Action_Links();
我已经检查过require\\u是否通过在新的类行下面添加var\\u转储来加载子目录中的php文件页面。对象将加载。

这是WP中的bug还是我的代码中的什么?

测试WP 4.3和4.4 beta 4。

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

我要感谢@Milo的回答。问题是$basenamedirname() 帮助定位正确的目录。

$basename =  plugin_basename( plugin_dir_path( dirname( dirname( dirname( __FILE__) ) ) ) . $this->plugin_slug . \'.php\' );

相关推荐