get_template_directory_uri() 在 Jquery 和 CSS 中

get_template_directory_uri() in Jquery and CSS

我正在尝试使用 get_template_directory_uri() 将图像加载到 jquery.backstretch.js 文件以及我的 styles.css。到目前为止,我将我的图像直接添加到名为 "img" 的文件夹中的主题文件夹中,并将其用于我的 HTML:

 <img src="<?php echo get_template_directory_uri(); ?>/img/logoyellow.png" class="hidden-xs" alt="logo" />

效果不错!

但我在 jquery 文件 (jquery.backtretch.js) 中执行了以下操作:

  $(document).ready(function () {
       $("#home-section").backstretch("<?php echo get_template_directory_uri(); ?>/img/background-image2.jpg");
   });

但是没有雪茄 :( 我也想知道如何将它装入我的 CSS。像这样的东西:

  #milestones-section {
      background: url('<?php echo get_template_directory_uri(); ?>/img/hbg.jpg') center center;
  }

提前致谢!

JS 文件未被 PHP 解析,因此您无法访问 get_template_directory_uri().

等函数

快速而肮脏的方式

您可以通过在每个页面的 <head> 中放置类似这样的内容来使 Javascript 可用:

<script>
    theme_directory = "<?php echo get_template_directory_uri() ?>";
</script>

正确的方法

您应该以正确的 Wordpress 方式加载 js,使用 wp_register_script() and/or wp_enqueue_script()。如果这样做,您可以使用 Wordpress 功能 wp_localize_script() 并使您喜欢的任何信息都可用于该脚本。

更多信息:http://codex.wordpress.org/Function_Reference/wp_localize_script

CSS

您的 CSS 文件应该已经在主题目录中,因此您可以使用相对路径。

Chris Herbert 表现不错 但是如果有人需要它把它写到 innerHTML,例如在一个按钮上:

1.) 插入 example.php 文件:

<?php 
function loadDirectory() { ?>
<script type="text/javascript">
    var theme_directory = "<?php echo get_template_directory_uri() ?>";
</script> 
<?php } 
add_action('wp_head', 'loadDirectory'); ?>

2.) 在 script.js 文件中:

document.getElementById('exampleButton').innerHTML = '<img src="' + theme_directory + '/svg/icons/cursor.svg" width="32" height="32" title="">Example';

也许有帮助