web-dev-qa-db-ja.com

ワードプレスのテーマにプラグインを追加するにはどうすればいいですか?

WordPressのテーマを商業的に開発することを計画していました。私が開発しているWordPressのテーマにプラグインを追加する簡単な方法を知りたいだけです。 ..

5

あなたのテーマのプラグインのファイルをいつでも含めることができます functions.php file。もちろん、ファイルとコードでテーマが肥大化しないようにするために、合理的な構造にする必要があります。

あなたはあなたのテーマフォルダ内のフォルダ "plugin"に含まれるすべてのプラグインをロードするために( Carringtonテーマ で使われる)このようなコードを使うことができます...

/**
 * 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

最も簡単な解決策は通常のワードプレスプラグインを使うことです^^。あなた自身のテーマに特化したプラグインシステムを書くことは全く不要で、あなたのテーマをより肥大化させ、開発とコストの維持を増やします。この場合、 _ kiss _ の原則が優先されます。
よろしくお願いいたします。
ハイ

プラグインをカスタムメソッドに置き換えるときに考慮すべきもう1つのポイントは更新です。多くのプラグインアップデートはセキュリティ問題を解決するため、またはWordPressアップデートによって引き起こされる問題を解決するためです。

0
perfwill