繁体   English   中英

wordpress自定义js在标题中

[英]wordpress custom js in header

我需要将这段特定的JS代码添加到Wordpress驱动的网站区域。

    <script type="text/javascript">
    var myDate = new Date();
    var myStamp = ""+myDate.getDate()+myDate.getMonth()+myDate.getFullYear()+myDate.getHours()+myDate.getMinutes();
    document.write('<script type="text/javascript" src="https://ajaxgeo.cartrawler.com/cartrawlerabe/abe/js/abeSVNInfo.js?' + myStamp + '"><\/script>');
    </script>
    <script type="text/javascript">
    document.write('<script type="text/javascript" src="https://ajaxgeo.cartrawler.com/cartrawlerabe/abe/js/ct_abe.js?'+CARTRAWLER.SVNInfo.revision+'"><\/script>');
    </script>
    <script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['form'];
    if (!theForm) {
        theForm = document.form;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    </script>

实现这一目标的最佳方法是什么?

你的意思是在前端?

使用的模板中的header.php通常是正确的地方。

在这种情况下,我会说使用WordPress wp_enqueue_script函数效果最好。

首先将JavaScript放入单独的文档(即cartrawler.js)。 将此JavaScript文档放在主题中(最好放在/ js文件夹中)。 之后,您将告诉您的主题使用该文件夹中的JavaScript。 这种方法的好处是可以更容易地控制JavaScript应该加载的时间和地点(例如只在home paga的标题中),并且它允许更好地兼容使用像(Better)WP Minify这样的插件进行缓存。

这是它的工作原理:

制作一个单独的JavaScript文档并将其存储在您的主题文件夹中(即theme / js / cartrawler.js):

var myDate = new Date();
var myStamp = ""+myDate.getDate()+myDate.getMonth()+myDate.getFullYear()+myDate.getHours()+myDate.getMinutes();
document.write('<script type="text/javascript" src="https://ajaxgeo.cartrawler.com/cartrawlerabe/abe/js/abeSVNInfo.js?' + myStamp + '"><\/script>');
document.write('<script type="text/javascript" src="https://ajaxgeo.cartrawler.com/cartrawlerabe/abe/js/ct_abe.js?'+CARTRAWLER.SVNInfo.revision+'"><\/script>');

var theForm = document.forms['form'];
if (!theForm) {
    theForm = document.form;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

制作完JavaScript文档后,可以将其添加到function.php文档中:

// Enqueue JavaScripts
function theme_scripts() {
    wp_enqueue_script('cartrawler', get_template_directory_uri() . '/js/cartrawler.js', array(), '20120802', '1');
}
add_action('wp_enqueue_scripts', 'theme_scripts');

我们在调用JavaScript时所做的工作如下:我们为JavaScript命名(cartrawler)并告诉函数可以在哪里找到源代码。 之后我们定义任何依赖项,幸运的是我们没有任何依赖项。 之后我们添加一个版本号(20120802)并告诉函数在页脚中加载JavaScript。 它不需要在标题后面(thumbsup @Lixus)。

在此处阅读有关使用wp_enqueue_script函数的更多信息: http ://codex.wordpress.org/Function_Reference/wp_enqueue_script

注意:确保header.php使用wp_header()函数,并且footer.php使用wp_footer()函数。

在Wordpress后端,转到外观 - >编辑器,然后在右侧菜单中选择页脚模板(footer.php)。

然后在</body>标记之前添加代码。

编辑:我认为最好将此代码添加到页脚,因为它不会等待文档加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM