私はWordpressプラグインに取り組んでいます。プラグインディレクトリ(個人のインストールによって変更される可能性があります)をjquery関数に渡す必要があります。
これを行うための最良の方法は何ですか?私が作業できるプラグインのバージョンでは、PHPファイルにすべてのJavaScriptが含まれていたため、ブラウザーでレンダリングされる前に、関数が残りのコンテンツとともに解析されました。
私はAJAXを見ていますが、必要以上に複雑かもしれないと思います。この場合、2つの変数(ディレクトリ、ユーザーが設定するものは何もありません)で済ますことができます。
その良い習慣を読んだので、私はjsとphpを別々に保とうとしています。プラグインが初期化されると、jsファイルが呼び出されます。
//Wordpress calls the .js when the plugin loads
wp_enqueue_script( 'wp-backitup-funtions', plugin_dir_url( __FILE__ ) . 'js/wp-backitup.js', array( 'jquery' ) );
次に、.jsファイルを使用して、次の変数を生成する方法を理解する必要があります。
dir = '<?php echo content_url() ."/plugins"; ?>';
dir = '<?php echo content_url() ."/themes"; ?>';
dir = '<?php echo content_url() ."/uploads"; ?>';
そして、次のリクエストの解析を実行します。
xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/includes/wp-backitup-restore.php'); ?>",true);
xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/includes/wp-backitup-start.php'); ?>",true);
xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/wp-backitup-directory.php'); ?>",true);
xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/wp-backitup-db.php'); ?>",true);
window.location = "<?php echo plugins_url() .'/wp-backitup/backitup-project.zip'); ?>";
xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/wp-backitup-delete.php'); ?>",true);
コンテンツURLとプラグインURLは/plugins/だけが異なるので、私が強く押された場合、私は本当に1つのPHPリクエストを作成し、それをJSに取り込むだけで済みます。