Is_page()可以与开关控制结构组合吗?

时间:2012-09-11 作者:ivavid

我使用if/else控件结构向标记添加类属性。我可以使用开关控制结构吗?如果可以,如何使用?如果没有,还有比我现在做的更好的方法吗?

<div <?php if (is_page( \'project\' )) { echo \'class="project"\'; }
        elseif (is_page(\'home\')) {echo \'class="home"\'; }
        elseif (is_page(\'contact\')) {echo \'class="contact"\'; }
    ?>>
</div>

2 个回复
最合适的回答,由SO网友:Otto 整理而成

虽然Ben的回答基本正确,但is\\u page也会检查以确保查询确实是一个页面,而不是具有相同post\\u名称的其他页面。

因此,为了百分之百准确,您可以这样做:

if ( is_page() ) { // only do this for actual pages
  $page_obj = get_queried_object();
  switch ( $page_obj->post_name ) {
    // same switch as Ben\'s answer
  }
} else { 
  // not a page
}

SO网友:Ben HartLenn

好了,现在我们有一些事情要处理。

switch($post->post_name)
{
    case "project" :
        echo \'class="project"\';
        break;
    case "home" :
        echo \'class="home"\';
        break;
    case "contact" :
        echo \'class="contact"\';
        break;
}
开关是一种表示“基于此变量值选择其中一个选项”的方式,但if/else语句只是一系列布尔检查。因此,在您的例子中,切换显然是赢家。

结束

相关推荐

PHP Call to External Database

我正在使用Studio Press的圆滑儿童主题,并希望对该外部数据库进行PHP调用,以使其显示如下链接:http://www.escort332.org/tuskegeecadets.php . 主题页是此全宽页:http://escort332.org/wordpress1/tusk...skegee-cadets/. 有没有办法在页面本身中添加链接到数据库的PHP代码?我还需要访问其他页面的数据库。这在《创世纪》框架或儿童主题中是否可行。任何帮助都将不胜感激。