Cue是一款HTML5免费的WordPress插件,可以在WP插件官方下载 Cue
今天要说的就是如何将这款插件代码化集成到你的主题中。
首先要明白一个原理,就是一般插件都是将原本自定的函数通过修改路径后添加相应的钩子hook到主题中,启动插件后就相当于将相应的代码加入到了主题的functions.php文件里面,所以如果要将插件代码化集成到主题,我们只需要反过来把相应的插件文件代码粘贴到主题的functions.php即可,只不过这中间要进行一些文件路径和钩子的修改。


首先下载Cue插件,解压出来后一般会有一个cue.php文件,其他都是文件夹和文本说明,这个cue.php就是关键,我们要做的就是把这个php文件里面的代码贴到functions.php里面即可,而文件夹也复制到主题目录中去。(其他大部分插件也是如此,解压后所见到的插件文件夹下的php文件就是要加到functions.php里去的)


打开cue.php,修改文件路径,这个文件算是起定义引导作用,引用其他文件夹里面的文件,所以路径不能出错,否则wp后台可能打不开。
插件一般有三个常用的路径函数 plugin_dir_path( __FILE__ )plugin_dir_url( __FILE__ )dirname( __FILE__ ) 分别表示什么我就不赘述了,可以百度一下。
修改后代码如下:

<?php

if ( ! defined( 'CUE_DIR' ) ) { //服务器绝对路径

    define( 'CUE_DIR', TEMPLATEPATH.'/cue/' );
}

if ( ! defined( 'CUE_URL' ) ) { // 浏览器地址绝对路径
    define( 'CUE_URL', get_stylesheet_directory_uri()."/cue/" );

}

/**
 * Include functions and libraries.
 */
if ( ! class_exists( 'Gamajo_Template_Loader' ) ) {
    require( CUE_DIR . 'includes/vendor/class-gamajo-template-loader.php' );
}

require( CUE_DIR . 'includes/functions.php' );

/**
 * Include admin functions and libraries.
 */
if ( is_admin() ) {
    require( CUE_DIR . 'admin/includes/class-cue-admin.php' );
    require( CUE_DIR . 'admin/includes/ajax.php' );
}


function cue_autoloader( $class ) {
    if ( 0 !== strpos( $class, 'Cue' ) ) {
        return;
    }

    $file  = dirname( __FILE__ ); // 当前文件所在的目录(PHP)
    $file .= ( false === strpos( $class, 'Admin' ) ) ? '/cue/includes/' : '/admin/includes/';
    $file .= 'class-' . strtolower( str_replace( '_', '-', $class ) ) . '.php';

    if ( file_exists( $file ) ) {
        require_once( $file );
    }
}
spl_autoload_register( 'cue_autoloader' );

// Instantiate and load the plugin.
global $cue;
$cue = new Cue();
add_action( 'after_setup_theme', array( $cue, 'load_plugin' ) );

?>

上面的代码除了改路径之外,最后一个钩子的API也改成了after_setup_theme,而不是原来的plugins_loaded


将它们丢到functions.php里面去,其他文件夹也放到一个名为cue的文件夹里面,将cue文件夹复制到主题目录下。这样就完成插件的集成了,打开WP后台可以看到播放列表编辑,通过AddNew添加新的播放列表,里面可以逐条添加歌曲。
2015-05-17_cue