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

时间:2011-11-06 05:12:12

标签: wordpress url

我正在使用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'

这太难看了!

代码结构是;

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

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

2 个答案:

答案 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' );