将JavaScript函数添加到wordpress主题

时间:2015-02-20 08:10:35

标签: javascript php wordpress

我开发了一个使用了comments-plugin的插件开发人员指示我添加以下JavaScript:

function WPACLoadMoreComments() {
  window.WPACLoadMoreCount = window.WPACLoadMoreCount || 1;
  var url = (new Uri(location.href)).replaceQueryParam('WPACTake', window.WPACLoadMoreCount * 20).toString();
  if (WPAC.LoadComments(url, {updateUrl: false})) {
    window.WPACLoadMoreCount++;
  }
}

我认为他的意思是把它放在functions.php中,但是当我插入这段代码时网站没有加载。我试着在最后插入它,我试着用

包装它
<?php

the function...

?> 

我该如何正确地做到这一点?

4 个答案:

答案 0 :(得分:1)

您需要将代码添加到javascript文件enqueue it in functions.php,或通过action hook回复。

在法典中有a section about including JavaScript权利,值得一读。

答案 1 :(得分:0)

将它放在<?php ?>之外某处的functions.php或footer.php文件中,并将其包装到<script type="text/javascript">Your function here...</script>

答案 2 :(得分:0)

将以下代码添加到您的functions.php文件

function comment_script(){
$html = "<script type='text/javascript'>
   function WPACLoadMoreComments() {
     window.WPACLoadMoreCount = window.WPACLoadMoreCount || 1;
     var url = (new Uri(location.href)).replaceQueryParam('WPACTake',   window.WPACLoadMoreCount * 20).toString();
  if (WPAC.LoadComments(url, {updateUrl: false})) {
    window.WPACLoadMoreCount++;
  }
}
</script>";
echo $html;
}
add_action('wp_footer','comment_script');

答案 3 :(得分:0)

这是一个Javascript函数,而不是PHP函数。这意味着您需要执行以下操作:

<?php

// Your existing PHP code here

?>
<script>
  function WPACLoadMoreComments() {
  window.WPACLoadMoreCount = window.WPACLoadMoreCount || 1;
  var url = (new Uri(location.href)).replaceQueryParam('WPACTake', window.WPACLoadMoreCount * 20).toString();
  if (WPAC.LoadComments(url, {updateUrl: false})) {
    window.WPACLoadMoreCount++;
  }
}
</script>
<?php

//Your remaining PHP code

?> 

另一种可能性是这样做:

<?php

echo "<script>";
echo "  function WPACLoadMoreComments() {";
echo "  window.WPACLoadMoreCount = window.WPACLoadMoreCount || 1;";
echo "var url = (new Uri(location.href)).replaceQueryParam('WPACTake', window.WPACLoadMoreCount * 20).toString();"
echo "  if (WPAC.LoadComments(url, {updateUrl: false})) {";
echo "    window.WPACLoadMoreCount++;";
echo "  }";
echo "}";
echo "</script>";

?> 

我们这样做的原因是Javascript不是在服务器上执行,而是在用户的浏览器(客户端)上执行。因此,不需要将Javascript放在<?php ?>标记中,因为您不希望它作为PHP代码执行。由于它将由浏览器执行,这意味着您需要此代码显示在浏览器加载的HTML文档中,因此您应该使用echo或在<script>标记之外的<?php ?>标记内写入1}}

在性能方面,最好将Javascript代码放在页面的末尾。这是为了确保在用户的浏览器加载页面时由JS代码引起的任何可能的滞后都不会影响页面的呈现。