我有一个带有固定顶栏的网站,上面显示着特定的徽标。我在jQuery中使用以下脚本在滚动若干像素后显示/隐藏徽标:
<script>
jQuery(document).scroll(function() {
var y = jQuery(this).scrollTop();
if (y > 63) {
jQuery(\'.top-bar-logo\').fadeIn();
} else {
jQuery(\'.top-bar-logo\').css({
\'display\': \'none\'
});
}
});
</script>
上述脚本运行良好,但它适用于网站中的每个页面。因此,我现在要做的是为特定的页面/模板自定义此脚本。例如,我希望以jQuery中的“归档”模板为目标,并为其编写自定义脚本。我该怎么做?
我是Wordpress开发新手,非常感谢您的帮助。谢谢
SO网友:noahmason
方法1使用body类。所有模板都将有一个表示它们的类。ie:body.archive
, body.single
, body.home
, 等等。它甚至会有特定的税务/职务类型类,以便进行更精细的控制。用检查body类的东西包装js函数。下面应该可以做到这一点:
jQuery
if ( $( \'body\' ).first().hasClass( \'archive\' ) ) {...}
Plain JS
const body = document.querySelector(\'body\');
if ( body.classList.contains(\'archive\') ) {...}
Note: 可以通过
body_class
过滤器,以及
body_class()
功能必须在身体元素上。
Function (make sure this is on your body element):
body\\u class()| Function | WordPress开发人员资源
https://developer.wordpress.org/reference/functions/body_class/Filter (Use this to manipulate):
body\\u class | Hook | WordPress开发人员资源
https://developer.wordpress.org/reference/hooks/body_class/方法2您还可以在php中以该模板为目标,并将wp_enqueue_script
对于此文件(只要这是此文件中的全部内容,并且您不需要其他内容),请在条件中进行检查,即:is_archive()
, is_single()
, is_home()
.
If you bundle your assets, use the first approach.