直接访问插件时重新定义插件目录路径?

时间:2016-04-30 03:40:41

标签: php wordpress

所以我试图以这样一种方式为Wordpress创建一个插件,它也可以合并到一个主题中并直接访问。我已经弄清楚了如何在没有加载类的情况下如何包含插件但是我无法重新定义插件所需的任何CSS或js的插件路径。有没有办法重新定义函数中的插件URL和目录路径,以便它指向正确的目录并覆盖插件的默认目录?

2 个答案:

答案 0 :(得分:0)

尝试使用此功能,将出口部分更改为所需的任何内容。重定向或其他东西

self.__class__

答案 1 :(得分:0)

我能够通过创建过滤器来解决这个问题:

define( 'THEME_MODE', apply_filters( 'theme_mode', false ) );

然后创建一个if / else函数:

if ( false == THEME_MODE) {
        define( 'PLUGIN_URI', plugin_dir_url( __FILE__ ));
        define( 'PLUGIN_DIR', plugin_dir_url( __FILE__ ));
  } else {
    if ( true == THEME_MODE ) {
          $path = ltrim( end( @explode( get_stylesheet(), str_replace( '\\', '/', dirname( __FILE__ ) ) ) ), '/' );
          define( 'PLUGIN_URI',  trailingslashit(trailingslashit(get_bloginfo('template_directory') ). $path));
          define( 'PLUGIN_DIR', trailingslashit(trailingslashit(get_bloginfo('template_directory') ) . $path ));
    }
  }

然后我调用了functions.php中的函数

add_action('after_setup_theme', 'load_shortcodes');
add_filter( 'theme_mode', '__return_true' );
function load_shortcodes() {
if( ! class_exists('Shortcodes') ) {    
    // load if not already loaded
    include_once( TEMPLATEPATH. '/shortcodes/aa-shortcodes.php' );      
    }
}