WordPress如何从javascript中的function.php访问全局

时间:2014-06-16 03:40:52

标签: wordpress

我在functions.php中添加了一个全局变量,该变量位于我的主题文件夹中但不能在javascript中解析

所以在functions.php中我有:

global $the_url;
$the_url =  "https://google.com";

然后在我的main.js文件中,我添加了:

alert ('<?php echo $the_url ; ?>');

但我的警报实际上输出了字符串<?php echo $the_url; ?>

我也尝试过警告('<?php print($the_url); ?>');,但我又在警报

中找到了字符串

最后我尝试删除引号alert (<?php echo $requests_url ; ?>);但我收到了意外令牌错误&lt;

任何人都有任何想法,为什么这不起作用?

3 个答案:

答案 0 :(得分:0)

这是因为您在JS文件中使用PHP代码。您需要在行</head>之前将JS代码移动到诸如header.php之类的PHP文件。

<script type="text/javascript">alert('<?php echo $the_url ; ?>');</script>

答案 1 :(得分:0)

这是示例代码

functions.php中的示例

<?php function my_code() { >
<script>

var home = '<?php echo bloginfo('url'); ?>';

alert(home);

</script>
<?php } 
add_action('wp_head','my_code');
?>

答案 2 :(得分:0)

使用wp_localize_script

<?php

// Register the script first.
wp_register_script( 'some_handle', 'path/to/myscript.js' );

// Now we can localize the script with our data.
$translation_array = array( 'some_string' => 'some value', 'a_value' => '10' );
wp_localize_script( 'some_handle', 'object_name', $translation_array );

// The script can be enqueued now or later.
wp_enqueue_script( 'some_handle' );

您可以按如下方式访问JavaScript中的变量:

<script>
    alert( object_name.some_string) ; // alerts 'Some value'
</script> 

以上代码摘自Wp_localize_script