Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript获取Wordpress主题、php文件URL_Wordpress_Url - Fatal编程技术网

通过javascript获取Wordpress主题、php文件URL

通过javascript获取Wordpress主题、php文件URL,wordpress,url,Wordpress,Url,我使用jQueryload()在运行时加载PHP页面。我并没有使用一种优雅的方式来获取PHP URL。谁能告诉我一个优雅的方式 我的方法: 'http://' + document.domain + '/wp-content/themes/mytheme/ajax/myload.php' loadDivFromThemePage(var themePagePath) { // call ajax load with themePagePath variable } <scri

我使用jQuery
load()
在运行时加载PHP页面。我并没有使用一种优雅的方式来获取PHP URL。谁能告诉我一个优雅的方式

我的方法:

'http://' + document.domain + '/wp-content/themes/mytheme/ajax/myload.php'
loadDivFromThemePage(var themePagePath)
{
     // call ajax load with themePagePath variable
}
<script>
loadDivFromThemePage(<?php echo get_template_directory_uri() . "/tpl.php" ?>)
</script>
如果我的wp位于子目录下,我必须将url更改为:

'http://' + document.domain + '/mysubdir/wp-content/themes/mytheme/ajax/myload.php'
这太难看了

代码的结构是

  • index.php包含a.js
  • a.js使用ajax将tpl.php加载到index.php中(只需回显一些div)
  • tpl.php在我的主题路径中

所以问题是如何在a.js中获取tpl.php的URL

您应该能够使用
get\u template\u directory\u uri

此外,
get\u site\u url
也可能派上用场

get_bloginfo
会给你一些东西,比如站点url和主目录url


此外,听起来您需要向JS代码中添加一个参数,该参数是从PHP“传递”的

例如(在伪代码中)

a.js:

'http://' + document.domain + '/wp-content/themes/mytheme/ajax/myload.php'
loadDivFromThemePage(var themePagePath)
{
     // call ajax load with themePagePath variable
}
<script>
loadDivFromThemePage(<?php echo get_template_directory_uri() . "/tpl.php" ?>)
</script>
index.php:

'http://' + document.domain + '/wp-content/themes/mytheme/ajax/myload.php'
loadDivFromThemePage(var themePagePath)
{
     // call ajax load with themePagePath variable
}
<script>
loadDivFromThemePage(<?php echo get_template_directory_uri() . "/tpl.php" ?>)
</script>

loadDivFromThemePage()

您需要使用wp\u本地化\u脚本

例如,在我的javascript中,当我需要路径时,我调用变量“myLocalized”。我在WordPress中使用Angular。我的代码如下:

function()脚本{
wp_寄存器_脚本(
“angularjs”,
获取样式表目录uri()。/bower\u components/angular/angular.min.js'
);
wp_寄存器_脚本(
“angularjs路线”,
获取样式表目录uri()。/bower\u components/angular route/angular route.min.js'
);
wp_排队_脚本(
“我的脚本”,
获取样式表目录uri()。/js/scripts.min.js',
数组('angularjs','angularjs路由')
);
wp_本地化_脚本(
“我的脚本”,
“myLocalized”,
排列(
'partials'=>trailingslashit(获取模板\u目录
)
);
}

添加\u操作('wp\u排队\u脚本','mes\u脚本')
谢谢Bryan,这是一个纯外部javascript代码,我不能从该文件调用php函数。有什么想法吗?@sam4如果您提供更多关于您具体情况的信息,这可能会有所帮助。您有权访问wordpress代码/服务器,还是这是第三方网站?如果您有权访问wordpress代码/服务器,以及问题所在m是指您不能在某个文件中使用php,您可以在服务器上创建一个php文件,该文件将返回上述函数的值供您使用。然后您可以通过ajax调用此php文件,获取适当的url作为响应字符串,并在客户端javascript中使用它。结构为-->
1,index.php包含a.js。
2,a.js ajax将tpl.php(只需回显一些div)加载到index.php中。
3,tpl.php在我的主题路径中。
所以问题是如何在a.js中获取tpl.php的url?谢谢你,布莱恩。@sam4我曾经用这些信息编辑过你的问题,并在我的答案中添加了一个可能的解决方案。让我知道这是否有效。谢谢@Bryan,哈哈,忘了我可以使用参数!