如何使用 PHP 将 class 添加到 "a href" 元素?

How to add a class to an "a href" element using PHP?

我正在尝试向具有 PHP 的导航元素添加“nav-active”class。这是我的代码,但没有添加 class。可能有什么问题?

这是我要更改的代码,因此我的常见问题解答导航项具有“nav-active”class:

<li class="nav-item">
            <a class="nav-link" <?php if ($thisPage=="faq") 
echo "class=\" nav-active\""; ?> href="/faq">FAQ</a>
          </li>

这是完整的 nav2.php 代码:


<!-- Navigation -->
  <nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
    <div class="container">
      <a class="navbar-brand" href="/">Ukryj Się</a>
      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
        Menu
        <i class="fas fa-bars"></i>
      </button>
      <div class="collapse navbar-collapse" id="navbarResponsive">
        <ul class="navbar-nav ml-auto">
          <li class="nav-item">
            <a class="nav-link" href="/">O Projekcie</a>
          </li>
            <li class="nav-item">
            <a class="nav-link" <?php if ($thisPage=="faq") 
echo "class=\" nav-active\""; ?> href="/faq">FAQ</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="/blog">Blog</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="/#signup">Kontakt</a>
          </li>
          <li class="nav-item">
            <a class="nav-link js-scroll-trigger" href="/en/blog">&#127468;&#127463; English</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

编辑:$thisPage 在 faq.php 文件中声明:

<!DOCTYPE html>
<?php $thisPage="faq"; ?>
<html lang="en">

<head>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="Wynajmij magiczny dom w lesie z prywatnym dostępem do jeziora, sauną, kominkiem. Pozbądź się ograniczeń, zyskaj niepowtarzalną energię wprost z natury. Uwolnij się od wielkomiejskiego pędu. Pobudź swoją kreatywność.">
  <meta name="author" content="">

每个 php 页的开头:

<?php
$thisPage="faq"; //Pagename
?>

Navar.php:

<li class="nav-item">
<a href="/faq" class="nav-link <?php if($thisPage=='faq') echo 'nav-active"'; ?>">FAQ</a>
</li>
<li class="nav-item">
<a href="/contact" class="nav-link <?php if($thisPage=='contact') echo 'nav-active"'; ?>">CONTACT</a>
</li>

class 属性只能应用一次。所以你可以收集所有 classes 并像这样放入它们:

$classes = ['nav-link'];
if($thisPage == "faq") $classes[] = 'nav-active';

想加多少就加多少,然后把数组转成字符串,但是用space.

隔开
$classString = join(' ', $classes);

并输出到你的HTML

<a class="<?=$classString?>" href="/faq">FAQ</a>

class 属性只能应用一次。最短的方法是三元运算符。

<a class="<?='nav-link'.($thisPage==='faq'?' nav-active':'')?>" href="/faq">FAQ</a>