web-dev-qa-db-ja.com

Maxメガメニュープラグインをテーマに含める

プロジェクトのテーマに Max Mega Menu プラグインを追加します。

私がやったこと:

  • テーマにプラグインフォルダをコピーして貼り付けます
  • 私のテーマにmegamenu.phpファイルを含めるfunction.phpファイル

仕事に必要:

  • テーマに含める
  • テーマがアクティブなときにアクティブ

では、このプラグインを含めて、テーマがアクティブになったときにアクティブにするにはどうすればよいですか。

1
shamim khan

テーマの中に直接プラグインを含めると、WordPress.orgテーマディレクトリとThemeForestの両方によって拒否されます。

あなたは、テーマを持つプラグインをインクルードするためにTGMPAを使うべきです: http://tgmpluginactivation.com/

さらに読む: http://code.tutsplus.com/tutorials/using-the-tgm-plugin-activation-library-in-your-themes--cms-20901

TGMPAを使用することはプラグインがプラグインのままであることを意味し、WordPressは通常の「プラグイン」の方法でそれをロードします、そしてユーザーがリリースされると同時にプラグインの更新を取得します。

2
Tom Hemsley

functions.phpから呼び出すことで、テーマにプラグインを単純に含めることはできません。その理由は、ユーザーに同じプラグインが既にインストールされている場合、致命的なエラーが発生するためです。

また、プラグインが内部的にどのように機能するかわからないため、プラグインの一部をテーマに移動しないでください。存在しないファイルを探してエラーをスローしている可能性があります。

したがって、これを行う正しい方法は、テーマのサブディレクトリに完全なプラグインを用意し、まだ読み込まれていないかどうかを確認した後にのみ呼び出すことです。これは、プラグインで利用可能なことがわかっている特定の関数またはクラスの存在を確認することで実行できます。サンプルコード:

add_action('after_setup_theme', 'wpse237683_load_plugin');

function wpse237683_load_plugin() {
    if (!class_exists('wpse237683')) {
        include_once (get_template_directory() . 'plugins/wpse237683/wpse237683.php');
        }
    }

まださまざまな落とし穴があります。これらを自分で解決するか、 TGMPAなどのPHPライブラリ を使用して、これを管理できます。

2
cjbj