it-swarm.com.ru

Как добавить плагины в тему WordPress?

Я планировал разрабатывать темы WordPress на коммерческой основе. Я просто хочу знать простой способ добавления плагинов к моей теме WordPress, которую я разрабатываю ... Кто-нибудь может предложить мне простые шаги ... и мне нужны возможные методы, которые я мог бы эффективно использовать ..

5
Wordpress Themes

Вы всегда можете включить файлы плагинов в свою тему functions.php file. Конечно, вы должны поместить его в какую-то разумную структуру, чтобы ваша тема не распухла от файлов и кода :).

Вы можете использовать подобный код (используемый в тема Каррингтона ), чтобы загрузить все плагины, включенные в папку "plugin" в папке вашей темы ...

/**
 * Load theme plugins
 * 
**/
function cfct_load_plugins() {
    $files = cfct_files(CFCT_PATH.'plugins');
    if (count($files)) {
        foreach ($files as $file) {
            if (file_exists(CFCT_PATH.'plugins/'.$file)) {
                include_once(CFCT_PATH.'plugins/'.$file);
            }
// child theme support
            if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
                include_once(STYLESHEETPATH.'/plugins/'.$file);
            }
        }
    }
}

/**
 * Get a list of php files within a given path as well as files in corresponding child themes
 * 
 * @param sting $path Path to the directory to search
 * @return array Files within the path directory
 * 
**/
function cfct_files($path) {
    $files = apply_filters('cfct_files_'.$path, false);
    if ($files) {
        return $files;
    }
    $files = wp_cache_get('cfct_files_'.$path, 'cfct');
    if ($files) {
        return $files;
    }
    $files = array();
    $paths = array($path);
    if (STYLESHEETPATH.'/' != CFCT_PATH) {
        // load child theme files
        $paths[] = STYLESHEETPATH.'/'.str_replace(CFCT_PATH, '', $path);
    }
    foreach ($paths as $path) {
        if (is_dir($path) && $handle = opendir($path)) {
            while (false !== ($file = readdir($handle))) {
                $path = trailingslashit($path);
                if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
                    $files[] = $file;
                }
            }
            closedir($handle);
        }
    }
    $files = array_unique($files);
    wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
    return $files;
}

... тогда вы используете функцию cfct_load_plugins(); во время инициализации темы.

4
Ján Bočínec

Самое простое решение - просто использовать обычные плагины WordPress ^^. Написание специализированной системы плагинов для вашей собственной темы совершенно не нужно, делает вашу тему более раздутой и увеличивает стоимость разработки и обслуживания. В этом случае выигрывает принципKISS.
С уважением,
Хай

Еще один момент, который следует учитывать при замене плагинов пользовательскими методами, - это обновления. Многие обновления плагинов предназначены для решения проблем безопасности или для устранения проблем, вызванных обновлениями WordPress.

0
perfwill