【发布时间】:2012-06-18 15:07:05
【问题描述】:
我正在开发一个 Wordpress 插件。我需要将插件目录(可以根据个人的安装而改变)传递给 jquery 函数。
这样做的最佳方法是什么?我可以使用的插件版本在 PHP 文件中包含了所有 javascript,因此这些函数在被呈现在浏览器中之前与其余内容一起被解析。
我正在研究 AJAX,但我认为它可能比我需要的更复杂。在这种情况下,我可以只使用两个变量(目录,用户没有设置)。
正如我已经阅读了它的良好做法,我试图将 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/ 上有所不同,因此,如果我很难按,我真的只需要发出一个 PHP 请求,然后将其带入 JS。
【问题讨论】:
-
您可能对 JQuery 的
serializeArray()函数感兴趣,可以将变量作为单个数组来回传递。
标签: php jquery ajax wordpress plugins