【问题标题】:Simple PHP Question: Conditional CSS class based on user简单的 PHP 问题:基于用户的条件 CSS 类
【发布时间】:2011-01-13 06:15:27
【问题描述】:

如果评论是由管理员进行的,我将使用此代码为评论框显示不同的样式类

<li class="<?php if ($comment->user_id == 1) $oddcomment = "authorstyle"; echo $oddcomment; ?>"></li>

管理员的 user_id = 1。现在,如果我想添加 user_id 5 和 6,我将如何编辑此代码?

【问题讨论】:

  • 你会得到一打答案,每一个都错了。只是因为这个问题不像看起来那么简单

标签: php css wordpress if-statement


【解决方案1】:

您可以使用 ||运算符(表示或):

如果 ($comment->user_id == 1 || $comment->user_id == 5 || $comment->user_id == 6)

或者你可以使用 in_array:

if (in_array($comment->user_id, array(1, 5, 6))

看起来更好,更易于维护。 :)

【讨论】:

    【解决方案2】:

    处理这种情况的一种(可能)稳健的方法是询问用户 ID 是否是一组用户 ID 中的一个,因此一个相当微不足道的条件是:

    in_array($comment->user_id, array(1,5,6))
    

    显然,您正在开发某种权限系统,因此您最好想出一种方法来从他们的身份中提取用户权限,并验证用户是否具有某些特权或状态,而不是在每个地方检查对于上述状态。

    执行此操作的一种方法可能是将用户分配到管理员组,然后检查该组,而不是检查所有 ID。更好的是,您可以考虑在组上设置一些属性,例如 has_style_xyz,然后在条件中检查 has_style_xyz

    【讨论】:

      【解决方案3】:

      你可以使用这样的东西:

      <li class="<?php
        if ($comment->user_id == 1)
           $oddcomment = "authorstyle";
        if ($comment->user_id == 2)
           $oddcomment = "somethingelse";
        if ($comment->user_id == 3)
           $oddcomment = "blahbalh";
       echo $oddcomment; ?>"></li>
      

      ...等等,适用于多种样式。

      <li class="<?php
        if ($comment->user_id == 1 || $comment->user_id == 4 || $comment->user_id == 5)
           $oddcomment = "blahbalh";
       echo $oddcomment; ?>"></li>
      

      ...对于具有一种样式的多个 ID。

      【讨论】:

        【解决方案4】:

        只需在 if 语句中使用 OR||

        <li class="<?php if ($comment->user_id == 1 || $comment->user_id == 5 || $comment->user_id == 6) $oddcomment = "authorstyle"; echo $oddcomment; ?>"></li>

        【讨论】:

          【解决方案5】:

          你可以试试这个代码

          <?php 
          if ($comment->user_id == 1) 
             $oddcomment = "authorstyle"; 
          else($comment->user_id == 5)
              $oddcomment = "authorstyle2"; 
          else($comment->user_id == 6)
              $oddcomment = "authorstyle3"; 
          ?>
          
          <li class="<?php echo $oddcomment; ?>"></li>
          

          【讨论】:

            【解决方案6】:

            您可以通过简单的方式执行以下操作:

                 <?php
                    $liStyles[1] = 'authorstyle';
                    $liStyles[5] = 'somestyle';
                    $liStyles[6] = 'someotherstyle';
                 ?>
            
            
            
             <li class="<?php echo $liStyles[$comment->user_id]; ?>"></li>
            

            【讨论】:

              【解决方案7】:

              我建议不要使用用户 ID 来确定他们的管理员状态,因为这样您就必须手动添加/删除每个用户的 ID。

              这个网站正是你想做的。

              http://buildinternet.com/2009/09/automatically-highlight-admin-comments-in-wordpress/

              【讨论】:

                猜你喜欢
                • 2011-10-29
                • 1970-01-01
                • 2010-10-28
                • 2013-02-17
                • 1970-01-01
                • 2011-10-30
                • 1970-01-01
                • 1970-01-01
                • 2018-04-08
                相关资源
                最近更新 更多