网站建设

互推联盟iframe新增公告模块(附:知更鸟主题公告DIY经验)

Jager · 3月17日 · 2014年 · 2821次已读

前天,玛思阁推出了互推联盟 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

互推联盟iframe新增公告模块(附:知更鸟主题公告DIY经验)

 

龙三公子互推联盟页面:http://www.mybabycastle.com/hutui.asp

 互推联盟iframe新增公告模块(附:知更鸟主题公告DIY经验)

虽然最终不是很完美,但是却让我得到了一个经验,感觉可以分享给使用知更鸟主题的博友:

那就是: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 知更鸟公告的经验,倒是可以帮助同样使用知更鸟的博友。

不过,回头有时间,我还是会研究下如何搞定这个问题的,到时候再来记录一笔!

17 条回应
  1. 龙三公子 2014-3-17 · 21:31

    非常感谢提醒啊。前几天我还记得有读过你关于标签闭合的问题,我还建议用代码分析比对器,结果今天就出现在我身上了。看了下,是多了个</div>,目前OK了。

    • avatar
      Jager 2014-3-17 · 23:21

      哈哈,正好用得上~

  2. 眼幕微启 2014-3-17 · 22:59

    无私分享,赞一个

    • avatar
      Jager 2014-3-17 · 23:22

      哈哈,得发扬互联网分享精神,知识来自网络,然后再回归网络~

  3. PHP二次开发 2014-3-18 · 11:20

    哈哈,你挺能折腾,看好你哈。

    • avatar
      Jager 2014-3-18 · 11:31

      其实,还有个博友建议加上公共的评论模块,昨晚我折腾到了1点多,搞定了,但是没敢公布出来,不知道这个想法行不行~?

      • 龙三公子 2014-3-18 · 21:21

        可行啊,你先不公布代码,先放出来看看效果。

        • avatar
          Jager 2014-3-18 · 21:24

          你注意看下文章的iframe代码,其实已经加入了自适应高度了~~~为的就是自适应评论的高度。

  4. WordPress主题 2014-3-18 · 13:10

    各种搞啊。

    • avatar
      Jager 2014-3-18 · 14:02

      搞搞更健康。

  5. 73花生博客 2014-3-18 · 16:29

    你咋学的这些个代码

    • avatar
      Jager 2014-3-18 · 18:18

      慢慢看的,我也不在行。。

  6. 我爱集分宝 2014-3-18 · 21:35

    公告不多的直接html要好,不用查询数据库

    • avatar
      Jager 2014-3-18 · 23:17

      周末有时间再DIY一下吧~打算直接加上文字模块和评论模块,拿掉这个公告。

  7. 刘俊博客 2014-3-18 · 23:20

    你发的那几个网址,包括我的那个,都没有调用出来