前天,玛思阁推出了互推联盟 iframe 模块,得到不错的反响,得到了很多博友的支持,玛思戈在这里说声感谢!
另外,博友龙三公子提出加入联盟活动公告模块的建议,我觉得这个想法非常棒!可以让这个模块在调用后显得更加鲜活,并且也能及时通知各成员参加联盟发起的最新活动,比如最近发起的《100 元服务大比拼》活动。
今早,在看到龙三公子的建议后,立即着手给iframe 代码加入公告模块。知更鸟主题本身自带了公告功能,所以直接就地取材,在 iframe 调用页面加上公告即可。
经过十来分钟的 DIY,就实现了。现在简单记录下添加过程:
知更鸟公告功能模块是由主题下的includes/bulletin.php实现的,所以在 iframe 模板的底部加上如下代码即可:
<?php if (get_option('swt_bulletin') == '关闭') { ?> <?php { echo ''; } ?> <?php } else { include(TEMPLATEPATH . '/includes/bulletin.php'); } ?>
加上之后,发现还可以自适应,又省了我好多功夫!细看公告展示的内容,发现把我所有的公告都给调用了,这可不好,别人还以为我给玛思阁打广告呢!于是打开了 includes/bulletin.php 找到调用公告的代码:
<?php $loop = new WP_Query( array( 'post_type' => 'bulletin','posts_per_page' => get_option('swt_bulletin_n') ) ); while ( $loop->have_posts() ) : $loop->the_post(); ?>
观察了一下,感觉只要在查询中额外附加一些条件应该就可以实现了。于是打开后台公告分类,将鼠标放到公告分类上,看到互推联盟分类的编辑连接如下:
https://zhang.ge/wp-admin/edit-tags.php?action=edit&taxonomy=genre&tag_ID=235&post_type=bulletin
我想,应该只要加上 'tag_ID' => '235' (如下),应该就可以了吧?
<?php $loop = new WP_Query( array( 'post_type' => 'bulletin','tag_ID' => '235','posts_per_page' => get_option('swt_bulletin_n'))); while ( $loop->have_posts() ) : $loop->the_post(); ?>
结果。。。。还是将我所有的公告调用了,包括其他分类的公告!!!纳尼??
不死心,打开了 phpMyAdmin 看了表空间结构,发现这个 235 的栏位名称是 term_ID,于是换成 'term_ID' => '235',发现还是不行!求助度娘,找到了 WP_Query 的详细语法,然后试用了【'term_ID' => array(235) 、'tag_ID' => array(235) 、'slug' => 'bokehutui' 】等参数,发现都不行!!看来真的要死心了!!
我决定发绝招!我把其他公告全删除了!只剩下互推联盟的公告,这下总可以了吧??!!尼玛,非要戈爆点粗口。
现在,所有调用联盟 iframe的页面将会显示互推联盟的相关公告!来两张成功引用后的效果预览图,希望大家喜欢!
梦轩丽人互推联盟页面:http://www.mengxlr.com/yqlj.asp
龙三公子互推联盟页面:http://www.mybabycastle.com/hutui.asp
虽然最终不是很完美,但是却让我得到了一个经验,感觉可以分享给使用知更鸟主题的博友:
那就是:DIY 知更鸟公告代码,让公告可以同时调用文章及公告,并随机显示!
用知更鸟的博友应该都知道,知更鸟原始底部公告栏仅能调用后台公告内容。我记得之前用过《万戈工具栏》,这个插件只要不输入公告内容就会随机调用文章内容,这样可以增加了一些老文章的被访问率,感觉不错!
这次折腾中,我发现知更鸟的也只要稍微修改下就可以实现公告和文章混合调用!玛思阁现在用的就是这种模式。
具体修改方法:
编辑主题下的 includes/bulletin.php,搜索 'post_type'定位并修改'post_type' => 'bulletin',最终代码如下:
<?php $loop = new WP_Query( array( 'post_type' => array(post,bulletin),'orderby' => 'rand','posts_per_page' => get_option('swt_bulletin_n') ) ); while ( $loop->have_posts() ) : $loop->the_post(); ?>
简单说明:其实就是在原始的 post_type=bulletin 的查询条件中加入 post 类型即可,即 'post_type' => array(post,bulletin),很好理解!如果,你想只调用文章而不需要公告,那么只要将这句代码修改成 'post_type' => 'post'即可;
至于随机显示,只要在其中加入'orderby' => 'rand'即可。至始至终,你只要注意别打错或少打了英文的逗号(,)就行,简单吧!!
最后,国际惯例,总结一下!互推联盟 iframe 公告模块的添加基本上是成功了,但是在戈的心理只能算是一个半成品,因为我不能添加别的公告了,否则都会被调用。。。庆幸的是得出了 DIY 知更鸟公告的经验,倒是可以帮助同样使用知更鸟的博友。
不过,回头有时间,我还是会研究下如何搞定这个问题的,到时候再来记录一笔!
非常感谢提醒啊。前几天我还记得有读过你关于标签闭合的问题,我还建议用代码分析比对器,结果今天就出现在我身上了。看了下,是多了个</div>,目前OK了。
哈哈,正好用得上~
无私分享,赞一个
哈哈,得发扬互联网分享精神,知识来自网络,然后再回归网络~
哈哈,你挺能折腾,看好你哈。
其实,还有个博友建议加上公共的评论模块,昨晚我折腾到了1点多,搞定了,但是没敢公布出来,不知道这个想法行不行~?
可行啊,你先不公布代码,先放出来看看效果。
你注意看下文章的iframe代码,其实已经加入了自适应高度了~~~为的就是自适应评论的高度。
各种搞啊。
搞搞更健康。
你咋学的这些个代码
慢慢看的,我也不在行。。
公告不多的直接html要好,不用查询数据库
周末有时间再DIY一下吧~打算直接加上文字模块和评论模块,拿掉这个公告。
你发的那几个网址,包括我的那个,都没有调用出来
你自己看:http://www.mybabycastle.com/hutui.asp