[英]How to add custom javascript code in the Wordpress file “single.php”
[英]Where should javascript go in Wordpress which is only necessary for single.php?
我想在我正在构建的Wordpress网站的帖子末尾添加社交按钮(Facebook,Twitter,G +)。 它们只需要显示在帖子的永久链接页面上(在single.php中编辑)。
所以,我的问题是,我是否应该在header.php中放置必要的脚本(这会将它们放在适当的位置,但即使在没有必要时它们也会一直加载),或者我应该将它们放在single.php中的某个地方(这意味着它们只是必要时加载,但是位于<body>
中间的某个位置?
WordPress有一个名为is_single()
的函数 ,如果你正在处理单个页面,它会返回。
只有在查看单个页面时才可以包含脚本。 你可以做到
<?php if (is_single()) : ?>
<script src="http://twitter.com/path/to/bla"></script>
<?php endif; ?>
您可能希望在页面末尾(在关闭body
-tag之前)加载脚本,因为它允许在加载脚本之前呈现页面。
执行此操作的最佳方法是使用wp_enqueue_scripts操作挂钩。 你应该总是使用它来避免冲突并保持随之而来的所有好处。
<?php
function my_scripts_method() {
if(is_single()){
// register your script location, dependencies and version
wp_register_script('custom_script',
get_template_directory_uri() . '/js/custom_script.js',
array('jquery'),
'1.0' );
// enqueue the script
wp_enqueue_script('custom_script');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>
添加在body
中间混合的脚本元素没有任何问题,但是如果要增加加载时间,可能需要将script
元素附加到footer.php
。 在加载dom的其余部分之后调用脚本将阻止加载脚本阻止页面的其余部分呈现。
如果它是一个非常小的脚本,我认为没有理由不将它们添加到内联中,这样可以很容易地看到它们影响的元素。
你可以将它们放在single.php的底部,但正如你所指出的那样,这会让它们出现在页面中间。
相反,将它们放在header.php中,但内部使用if语句来检查它们是否需要(即它是单页),如下所示:
<?php if (is_single()): ?>
<script>...</script>
<?php endif;?>
如果你把上面的代码放在内部的php标签中,第一个<?php
和last ?>
不会/可能会导致问题。 无论哪种方式,在if语句中,应该是HTML,而不是php才能使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.