使用自定义字段实现对页面的判断

我的导航栏中有些标签卡并不是只包含一个页面。例如“关于”,就包含了/about,/about/myself,/about /loveblog,/about/copyright,/about/contact等多个页面,再比如“开源”则包含更多的页面,有 wordpress,firefox还有跟下一层的诸多页面。 我想在无论是哪一级页面被显示时,标签卡都要突出显示,例如在/about和/about/copyright两个页面中,我都希望“关于”标签卡突出显示。 以前我是这样实现的:

<li class=”<?php if ( is_page(’about’)||is_page(’copyright’) ) { echo ‘current-cat’; } ?>”><a href=”/about/”>关于

但是这样有两个弊端: 1.当子页面很多时,需要使用很多的||来定义“或”,会使代码看起来很乱。 2.有时候会有相同名称的子页面,如/about/books和/firefox/books,这样如果仅仅定义 is_page(’books’)会产生混乱。 所以,我放弃了这种使用||标记的代码,而使用更为灵活的自定义字段。

< ?php if (get_post_meta($post->ID, page_about)) { ?>

  • <a title=”About” href=”/about/”>关于
  • < ?php } else { >
  • <a title=”About” href=”/about/”>关于
  • < ?php }?>

    在需要归类于“关于”的日志或者页面的编辑页下方自定义字段,字段名中填写page_about,字段值中随意写,这样就可以在所有被定义了 page_about字段名的日志或页面显示时,使class=”current-cat”生效,依赖CSS中对“类”的定义,即可突出显示“关于”。

    0%