我正在使用jQuery load()
在运行时加载PHP页面。而且我没有使用优雅的方式来获取PHP URL。有人告诉我一个优雅的方式吗?
我的方法:
'http://' + document.domain + '/wp-content/themes/mytheme/ajax/myload.php'
如果我的wp在子目录下,我必须将网址改为:
'http://' + document.domain + '/mysubdir/wp-content/themes/mytheme/ajax/myload.php'
这太难看了!
代码结构是;
所以问题是如何在 a.js 中获取 tpl.php 的网址?
答案 0 :(得分:1)
您应该可以使用get_template_directory_uri
。
http://codex.wordpress.org/Function_Reference/get_template_directory_uri
此外,get_site_url
也可以派上用场。
http://codex.wordpress.org/Function_Reference/get_site_url
get_bloginfo
为您提供了大量内容,例如网站网址和主目录网址。
http://codex.wordpress.org/Function_Reference/get_bloginfo
另外,听起来你需要在你的JS代码中添加一个参数,这个参数是"传递的"来自PHP。
例如(伪代码)
<强> a.js:强>
loadDivFromThemePage(var themePagePath)
{
// call ajax load with themePagePath variable
}
<强>的index.php:强>
<script>
loadDivFromThemePage(<?php echo get_template_directory_uri() . "/tpl.php" ?>)
</script>
答案 1 :(得分:0)
您需要使用wp_localize_script。
https://codex.wordpress.org/Function_Reference/wp_localize_script
例如,在我的javascript中,当我需要路径时,我会调用变量'myLocalized'。我在WordPress上使用Angular。我的代码如下:
function() mes_scripts{
wp_register_script(
'angularjs',
get_stylesheet_directory_uri() . '/bower_components/angular/angular.min.js'
);
wp_register_script(
'angularjs-route',
get_stylesheet_directory_uri() . '/bower_components/angular-route/angular-route.min.js'
);
wp_enqueue_script(
'my-scripts',
get_stylesheet_directory_uri() . '/js/scripts.min.js',
array('angularjs', 'angularjs-route' )
);
wp_localize_script(
'my-scripts',
'myLocalized',
array(
'partials' => trailingslashit( get_template_dir
)
);
}
add_action( 'wp_enqueue_scripts', 'mes_scripts' );