2011-07-24 2 views
7

В .js-файле мне нужно получить шаблон-каталог темы Wordpress, то есть мне нужно получить возвращаемое значение <?php bloginfo('template_directory');?> в js-файле.php in js-file Wordpress

Идея что-то вроде:

var blogTemplateDir = "<?php bloginfo('template_directory');?>"; 

Как это может быть достигнуто? Каков стандартный способ (Wordpress) для этого?

ответ

4

Как ранее сообщал Эрик, расширение файла для JavaScript-файла бессмысленно, так как оно в конце концов сводится к контенту. При возникновении этой ситуации во время разработки, я обнаружил, что мне нужно добавить следующие строки в верхней части так называемого JavaScript-файла:

<?php 

    //Let's set the header straight 
    header('Content-type: text/javascript'); 

    //Get the WP-specifics, so that we can use constants and what not 
    $home_dir = preg_replace('^wp-content/plugins/[a-z0-9\-/]+^', '', getcwd()); 
    include($home_dir . 'wp-load.php'); 
?> 

Это гарантирует, что вы получите определения в ваш JavaScript-файл, и вы можете используйте пример выше с темами тоже (просто убедитесь, что вы меняете /plugins на /themes).

+0

Спасибо, я думал, если я ' 'внутри header.php, почему я не могу получить доступ к значению' templateDir' в моем .js-файле. Есть ли способ заставить это работать, зачем тогда я мог бы хранить свои js-файлы? – Ben

+1

Ну, вы устанавливаете 'templateDir' перед загрузкой других JavaScript-файлов? Если это так, должно быть возможно использовать переменные в ваших js-файлах. 'Файл 1 (index.php): http: // pastebin.com/sQGnmM9S' ' Файл 2 (javascript.js): http: // pastebin.com/cnUv5inD' – ninetwozero

+0

Спасибо, я получил заказ неправильно раньше. Теперь это работает! :) – Ben

3

Расширение файла для файла javascript не имеет смысла. Вы можете использовать PHP для вывода вашего файла javascript так же, как и HTML-страницы. Включите файл JS, как:

<script src="my_javascript_file.php"></script> 

И тогда вы можете использовать строку из вашего вопроса в вашем файла JavaScript:

var blogTemplateDir = "<?php bloginfo('template_directory');?>"; 
+0

Использование '<сценарий SRC = "my_javascript_file.php">' приводит к странным ошибкам в других файлах. Не спрашивайте меня, это просто убивает мою страницу. Если я ' 'вместо этого, тогда это работает. Кроме того, если я следую этому решению, я должен обернуть весь мой js-код в '