web-dev-qa-db-ja.com

プラグインでrequire_onceを使う?

これら2つのコードスニペットの違いは何ですか。また、どちらをWordPressプラグインに使用する必要がありますか。

require_once(dirname(__FILE__).'/inc/canagan_admin_functions.php');
require_once( '/inc/canagan_admin_functions.php' );

ありがとう、

マット

1
Shoebox

最初のものは言うようなものです...

このファイルが配置されているディレクトリの上のincディレクトリにあるファイルを含めます。

2番目のステートメントは言っています...

サーバールート(/)で、incフォルダーでcanagan_admin_functions.phpを探してそれを含めます。

最初のものは動作しますが、2番目は動作しません。 2番目は、ファイルシステム全体のルートを調べているところです。ファイルシステムは絶対に存在しません。

ちなみに、複数のファイルにまたがる、あるいはCSSまたはJSファイルをエンキューするプラグインを起動するときはいつでも、私は通常、いくつかの定数を設定して私を助けています。これは の例 です。

<?php
define( 'CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );

plugin_dir_path および plugin_dir_url は、末尾のスラッシュを含むパス/ URLを常に返すため、Niceです。

それからファイルをインクルード/要求するために、私は定数を使います。インクルードのたびにdirname(__FILE__)を呼び出さなくてもよくなります。

あなたはそれからファイルをインクルードするために定数を使うことができます...

require_once( CD_PLUGIN_PATH . 'path/to/file.php' );

またはスクリプト/スタイルをエンキューする...

<?php
add_action( 'wp_enqueue_scripts', 'wpse35088_enqueue' );
function wpse35088_enqueue()
{
    wp_enqueue_script( 'wpse35088-script', CD_PLUGIN_URL . 'path/to/script.js' );
}
7
chrisguitarguy