为 wordpress 主题添加 JavaScript 功能

Add JavaScript function to wordpress theme

开发我使用的评论插件的插件开发人员指示我添加以下内容 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...

?> 

我该怎么做才正确?

您需要将代码添加到 javascript 文件和 enqueue it in functions.php, or echo it via an action hook

抄本中有 a section about including JavaScript 值得一读。

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

将以下代码添加到您的 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');

这是一个 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 ?>

之外

就性能而言,将 Javascript 代码放在页面末尾总是更好。这是为了确保在用户浏览器加载您的页面时由 JS 代码引起的任何可能的延迟不会影响页面的呈现。