wordpress的in_category函数

作者 : 小编 本文共964个字,预计阅读时间需要3分钟。 发布时间: 2010-11-21 共479人阅读

最近在折腾新模板想让不同分类调用不同的single模板,放狗搜下很多答案,流传最广的就是这个:

  1. <?php
  2. $post = $wp_query->post;
  3. if ( in_category(‘7′) ) {
  4. include(TEMPLATEPATH . ‘/single-view.php’);
  5. }
  6. else if ( in_category(‘3′)) {
  7. include(TEMPLATEPATH . ‘/single-case.php’);
  8. }
  9. else if ( in_category(‘42′) ) {
  10. include(TEMPLATEPATH . ‘/single42.php’);
  11. }
  12. else {
  13. include(TEMPLATEPATH . ‘/archive-other.php’);
  14. }
  15. ?>

文中还给出了调用不同archive的方法,因为分类不是很多用category-id的方法已经解决所以那个不再这篇的讨论范畴,按照示例上写自己single.php得到

  1. <?php
  2. $post = $wp_query->post;
  3. if ( in_category( ’3′ )) {
  4. include(TEMPLATEPATH . ’/single-moban.php’);
  5. }
  6. else {
  7. include(TEMPLATEPATH . ’/single-other.php’);
  8. }
  9. ?>

测试下 不生效直接全部调用了single-other.php,想想应该是判断生效了为啥不调用第一个呢?困扰很久终于在codex上找到一个相同问题的哥们(估计是),并有人提出解决方案就是:改名。single-other改成other-single奇迹出现了,两个single都调用在指定的位置。汗!

但是如果想要更多的分类呢codex上给出用array的方法,比如我的single:

  1. <?php
  2. $post = $wp_query->post;
  3. if ( in_category( array(’3′,’4′,’5′,’6′,’7′) )) {
  4. include(TEMPLATEPATH . ’/moban-single.php’);
  5. }
  6. else {
  7. include(TEMPLATEPATH . ’/other-single.php’);
  8. }
  9. ?>

其中用id,名字,小名(slug名)都可以的,至此single改造告一段落!

常见问题FAQ

资源都是来自哪里的?
本站资源来源网络,但都经过站长测试。只提供测试体验,版权归原作者
资源购买后有售后么?
资源在文章或者下载的包里都有说明,请先仔细阅读,如果出现问题请qq联系小编!
我可以白嫖资源么?
本站开放了签到功能,想白嫖可以每天签到领取积分!

Leave a Reply