WordPress教程 · WPtech

WordPress添加底部滚动随机推荐栏

小编 · 2月22日 · 2020年

前言

这个功能最开始叫底部滚动公告条,部分Wordpress主题集成自带,比如知更鸟主题。主题没集成的还可以使用万戈牌公告栏插件来实现这个功能。不过以往插件或主题集成的公告栏功能都只会滚动公告,即后台会有一个公告撰写栏,可以编辑数条公告然后在前台底部滚动显示。

WordPress添加底部滚动随机推荐栏

后来在我折腾中国博客联盟展示导航的时候,发现原来要实现滚动其他内容也是非常简单的! 因此,我就将鸟哥主题的公告栏代码修改了一下,实现了目前博客的公告栏效果:随机滚动数篇历史文章,并显示评论和浏览数目,用了几天了,感觉还不错!就来分享一下,也许会有朋友喜欢!

实现方法

PHP代码

<div id="gg">
  <div class="wp_close"><a href="javascript:void(0)" onclick="$('#gg').slideUp('slow');" title="关闭">×</a>
	<div id="feedb">
	  <a href="/feed" rel="nofollow" target="_blank" title="欢迎订阅我的博客" class="image">
	    <img alt="订阅图标按钮" src="https://ae01.alicdn.com/kf/Hd9a7453d3adb46b085055353358c91ecs.gif" style="width:23px;height:23px;" />
	  </a>
	  <a title="亲,点我放松一下吧~!(单击启动,双击或ESC停止)" id="hig" href="javascript:void(0);" onclick="hig();" ondblclick="stopCrazy();">
	    亲,点我放松一下吧~!(单击启动,双击或ESC停止)
	  </a>
    </div>
    <div class="bulletin">
	    <ul>
	<?php wp_reset_query();query_posts( array ( 'orderby' => 'rand', 'showposts' => 5, 'ignore_sticky_posts' => 10 ) ); while ( have_posts() ) : the_post();?><li><a href="<?php the_permalink(); ?>" target="_blank" title="细看 <?php the_title(); ?>"><?php echo '随机推荐:《';the_title();echo '》';if(function_exists('the_views')) {print '( 阅读';the_views();print '次 |</a>';}comments_popup_link('坐等沙发','1条评论','%条评论'); ?>)</li><?php endwhile; ?>
        </ul>
	</div>
  </div>
</div>
<script type="text/javascript" src="https://www.zsxcool.com/wp-content/themes/niRvana/assets/minify/gg.js" ></script>

将以上代码中的QQ邮箱订阅链接地址修改成你自己博客的订阅地址,然后粘贴到WordPress主题目录的footer.php的</body>之前保存即可。

js代码

做完第一步,现在需要部署相关js和css了。

function turnoff(obj) {
	document.getElementById(obj).style.display = "none";
}
// 文字滚动
(function($) {
	$.fn.extend({
	Scroll: function(opt, callback) {
	if (!opt) var opt = {};
		var _this = this.eq(0).find("ul:first");
		var lineH = _this.find("li:first").height(),
		line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10),
		speed = opt.speed ? parseInt(opt.speed, 10) : 7000, //卷动速度,数值越大,速度越慢(毫秒)
                timer = opt.timer ? parseInt(opt.timer, 10) : 7000; //滚动的时间间隔(毫秒)
		if (line == 0) line = 1;
		var upHeight = 0 - line * lineH;
		scrollUp = function() {
			_this.animate({
				marginTop: upHeight
			}, speed, function() {
				for (i = 1; i <= line; i++) {
					_this.find("li:first").appendTo(_this);
					}
					_this.css({
					marginTop: 0
					});
				});
			}
			_this.hover(function() {
				clearInterval(timerID);
			}, function() {
				timerID = setInterval("scrollUp()", timer);
			}).mouseout();
		}
	})
})(jQuery);
$(document).ready(function() {
	$(".bulletin").Scroll({
		line: 1,
		speed: 1000,
		timer: 5000
	}); //修改此数字调整滚动时间
});

将以上代码保存为gg.js,然后上传到WordPress主题目录。

CSS代码

#gg{position:fixed;bottom:0;background:#000;width:100%;height:23px;line-height:23px;z-index:9999;opacity:.60;filter:alpha(opacity=60);_bottom:auto;_width:100%;_position:absolute;_top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));-webkit-box-shadow:10px 0 5px #000;-moz-box-shadow:10px 0 5px #000;box-shadow:10px 0 5px #000}
#gg a{color:#fff;letter-spacing:2px;text-shadow:0px 1px 0px #000}
.wp_close a{float:right;margin:0 10px 0 0}
.bulletin{height:23px;color:#fff;margin:0 0 0 20px;background:url('https://ae01.alicdn.com/kf/Hf7170dadfa014d0f8b1948b54d2dc7deu.gif') no-repeat;min-height:23px;overflow:hidden}
.bulletin a{float:left}
#gg .bulletin li{height:23px;padding-left:25px;list-style:none}

将以上CSS代码添加到主题的style.css当中。

可选调整

①、本文分享的滚动条默认是随机显示5篇文章,如果你想修改这个数目,只要将第一步PHP代码中的  ‘posts_per_page’ => 5 修改成你要的数值即可;

②、滚动速度可以修改第二步分享的JS代码来调整,里面都有详细注释,我就不赘述了。

③、如果发现底部的滚动条无法滚动,那可能是Jquery冲突了。

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!