web-dev-qa-db-ja.com

アクティベーションなしでプラグインを含めるにはどうすればいいですか?

プラグインを有効にせずにWordPressテーマにプラグインを含める必要があります。私はこれらの行を持っています:

include_once dirname( __FILE__ ) . '/math/class-constrained-array-rounding.php';

include( plugin_dir_path( __FILE__ ) . 'class.jetpack-user-agent.php');

そして

wp_enqueue_script( 'tiled-gallery', plugins_url( 'tiled-gallery/tiled-gallery.js', __FILE__ ), array( 'jquery' ) );

wp_enqueue_style( 'tiled-gallery', plugins_url( 'tiled-gallery/tiled-gallery.css', __FILE__ ), array(), '2012-09-21' );

これらのファイルをインクルードするにはplugin_dir_pathではなく関数get_template_directory_uri()を使う必要があると思いますが、私は混乱しています。

私はWordPressが初めてです。誰かがこの問題の解決策を提案できますか? :)

2
Aineko

WP_PLUGIN_DIR.'/pluginName/'はあなたにプラグインのディレクトリへの絶対パスを与えます。

コメント後に編集

プラグインはプラグイン、テーマファイルはテーマファイルです。両者を混同しないでください。テーマディレクトリにプラグインをコピーすることはできません - ものがそのようには動作しないためです。

慎重に編集した後は、テーマオプションの一部としてプラグインを含めることができます。

例を見てみましょう:

  1. 私のテーマにこんにちはドリープラグインを含めたいです。そのため、hello.phpをthemesディレクトリに次のようにコピーします。themes/mytheme/include/plugins/hello.php

  2. このファイルをロードするには( "plugin" - しかし実際にはもうプラグインではありません)、次のようにrequire_onceファイルをhello.phpする必要があります。

    define('mytheme_inc_path', TEMPLATEPATH . '/includes/');
    define('mytheme_inc_url', get_template_directory_uri(). '/includes/');
    require_once mytheme_inc_path. 'plugins/hello.php';
    

    a。私がもっと複​​雑な "プラグイン"を持っているなら、コードはこのようになります。

    require_once mytheme_inc_path. 'plugins/myplugin/myplugin.php';
    // because the plugin deserves its own directory
    

    myplugin.php内では、次のように必要なスクリプトとスタイルをエンキューします。

    function mytheme_plugin_scripts() {
        wp_enqueue_script('tiled-gallery',
            mytheme_inc_url . 'tiled-gallery/tiled-gallery.js',
            array('jquery')
        );
    
        wp_enqueue_style('tiled-gallery',
            mytheme_inc_url . 'tiled-gallery/tiled-gallery.css',
            array(), '2012-09-21');
    }
    
    add_action('wp_enqueue_scripts', 'mytheme_plugin_scripts');
    

あぶない

  • 不要な「プラグイン」hooks(フィルタ、有効化/無効化など)を必ず削除してください。
  • 本当に必要なものを除いて、他のすべてのactionsを必ず削除してください。

結論

スクリプト/スタイルの調査をしたことがあるならば、プラグイン(wp-content/pluginsまたはwp-content/mu-pluginsに格納されている)は、絶対/相対パスとURIを取得するために少し異なる関数を使うことを知っているでしょう。

関数リファレンス/ wp enqueue script

4
aifrim