为 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 代码引起的任何可能的延迟不会影响页面的呈现。
开发我使用的评论插件的插件开发人员指示我添加以下内容 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 代码引起的任何可能的延迟不会影响页面的呈现。