让Auto-highslide不在首页加载

网上有过将Auto HighSlide的JS文件放在footer加载的优化教程,但我首页只输出不带格式的excerpts,所以希望它在首页不要加载,虽然Auto HighSlide只是个轻量级小插件,但毕竟百十来KB的文件,而且还是白白加载,
本来想通过改变add_action挂钩的位置来实现,但看了一下wordpress官方文档add_action的hook列表里没有singular之类只在文章或页面触发的钩子,所以只能通过转移调用来实现,研究了一下解决方法如下:
在auto-highslide.php找到/* Add HighSlide */然后将下面的代码注释掉或者删除

function highslide_head() {
print('
<link rel="stylesheet" href="'.get_bloginfo('wpurl').'/wp-content/plugins/auto-highslide/highslide/highslide.css" type="text/css" />
<script type="text/javascript" src="'.get_bloginfo('wpurl').'/wp-content/plugins/auto-highslide/highslide/highslide-with-gallery.packed.js"></script>
<script type="text/javascript">
...
...
add_action('wp_head', 'highslide_head');

然后把highslide_head函数中的JS和CSS调用转移到single.php与page.php,或者直接到你主题的顶部或底部添加以下代码:

<?php if ( is_singular() ): ?>
	<link rel="stylesheet" href="'.get_bloginfo('wpurl').'/wp-content/plugins/auto-highslide/highslide/highslide.css" type="text/css" />
	<script type="text/javascript" src="'.get_bloginfo('wpurl').'/wp-content/plugins/auto-highslide/highslide/highslide-with-gallery.packed.js"></script>
	<script type="text/javascript">
		hs.graphicsDir = "'.get_bloginfo('wpurl').'/wp-content/plugins/auto-highslide/highslide/graphics/"
		hs.outlineType = "rounded-white";
		hs.dimmingOpacity = 0.8;
		hs.outlineWhileAnimating = true;
		hs.showCredits = false;
		hs.captionEval = "this.thumb.alt";
		hs.numberPosition = "caption";
		hs.align = "center";
		hs.transitions = ["expand", "crossfade"];
		hs.addSlideshow({
			interval: 5000,
			repeat: true,
			useControls: true,
			fixedControls: "fit",
			overlayOptions: {
				opacity: 0.75,
				position: "bottom center",
				hideOnMouseOut: true
			}
		});
	</script>
<?php endif; ?>

完成.

48 Comments

Name *

E-mail *

Website

  1. DickWu

    :sui: 我怎么给忘了。。。。

    • 小蝴蝶

      @DickWu : 是说忘了还能转移代码到主题吗 我一开始也忘了 老想着怎么改钩子

  2. 凤翼天堂

    插件什么的怎么看怎么不爽= =

  3. 郑永

    地板?稍后评论

    • 小蝴蝶

      @郑永 : 还好楼上那娃怎么哄都不肯换楼,不然地板就没了 :razz:

      • 郑永

        @小蝴蝶 : 之前用ajax遇到一个问题,一些页面的图片无法超链接,不知道你这个有没这个问题?

        • 小蝴蝶

          @郑永 : 好像没有诶 , 无法超链接是指没有放大效果还是指不能链接到图片啊?

        • 小蝴蝶

          @郑永 : 其实我还在弹钢琴.. :mrgreen:

          • 郑永

            @小蝴蝶 : :xiao: 知道你会上瘾,打开网址,不要放大。

            • 小蝴蝶

              @郑永 : 会不会是因为img没有放在a标签内部啊

              • 郑永

                @小蝴蝶 : 放了,点击还是放大。。

                • 小蝴蝶

                  @郑永 : 哦哦你不要放大啊, 那是不是因为a链接的地址是图片地址啊

                  • 郑永

                    @小蝴蝶 : 不是图片地址,是网站地址。

                    • 小蝴蝶

                      @郑永 : 额 我刚才在你本站地图那个页面插了张图片可以超链接诶~你有没有实例给我看看哈 :kelian:

  4. 郑永

    @小蝴蝶 : :guai: 你跑我那里发图片啦?我早就撤了那个效果了,用jQuery ajax ,木木写的。

    • 小蝴蝶

      @郑永 : 额 那之前的效果用来干嘛的 翻页哈?

      • 郑永

        @小蝴蝶 : 放大,翻页。但是文章了想插入超链接图片,目标网站打不开,哈哈。你文章里试试看。

        • 小蝴蝶

          @郑永 : 我试了好像很正常诶 你看看

          • 小蝴蝶

            @小蝴蝶 : 加在这篇文章末尾了

            • 郑永

              @小蝴蝶 : 看了html,你这插件给a自动添加了属性,所以,正常a标签可以用。回去也整个,呵呵。

              • 小蝴蝶

                @郑永 : 恩恩我明白啦~ 你是用的一个img直接放大的js哈, highslide和fancybox之类的暗箱放大都要给a添加class 我本来觉得你那样的更好呢

                • 郑永

                  @小蝴蝶 : 但是文章内的图片链接就。。。还是不折腾了,我很少发高清图和多图。哈哈

                • 郑永

                  @小蝴蝶 : 这时候应该不在了,哈哈。。。

                  • 小蝴蝶

                    @郑永 : 现在在了~不过你应该不在了 哈哈

  5. […] Auto highslide:唯一开启后直接对插入WP默认相册的页面实现效果的slide插件( Auto highslide优化 ) […]

  6. Android

    请允许我说题外话…
    话说这评论该怎样看..从上往下还是从下网上….
    还有 沙发后面是地板还是什么….
    我晕了(((φ(◎ロ◎;)φ)))

  7. 歪扑猫

    怎么不起作用呢!求助