如何将特定类应用于页面上的导航链接


How do I apply a specific class to a navigation link on a page ?

我的includes文件中有一个导航菜单,但我在整个网站上回显菜单时遇到了问题。如果我试着这样放置代码,页面会在导航菜单应该在的地方弹出标记。

如果我不在菜单之前添加<?php函数,代码会在一定程度上起作用。

我想知道如何在函数中回显此代码。我试过将单引号改为双引号,但我想我被菜单中li中的回声弄糊涂了。

一个解决方案将是伟大的。

感谢

<?php
function nav() {
echo 
<nav class='container'>
<ul>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'current-journal')) echo 'class="current"';?> href="current-journal">CURRENT JOURNAL<span class="sub-nav">Our latest and greatest!</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'submit')) echo 'class="current"';?> href="submit">SUBMIT<span class="sub-nav">Your writing</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'submission-guidelines')) echo 'class="current"';?> href="submission-guidelines">SUBMISSION GUIDELINES<span class="sub-nav">Everything you need to know is here</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'contributors')) echo 'class="current"';?> href="contributors">CONTRIBUTORS<span class="sub-nav">See who''s in our magazine''s latest issue</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'past-journals')) echo 'class="current"';?> href="past-journals">PAST JOURNALS<span class="sub-nav">Browse our issue archives</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'blog')) echo 'class="current"';?> href="blog">BLOG<span class="sub-nav">Just a blog</span></a></li>
</ul>
</nav>
}?>

最简单的方法是不使用初始echo。请注意function名称后面的?>和底部再次添加的用于结束函数大括号的<?php

<?php
function nav() {
?>
<nav class='container'>
<ul>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'current-journal')) echo 'class="current"';?> href="current-journal">CURRENT JOURNAL<span class="sub-nav">Our latest and greatest!</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'submit')) echo 'class="current"';?> href="submit">SUBMIT<span class="sub-nav">Your writing</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'submission-guidelines')) echo 'class="current"';?> href="submission-guidelines">SUBMISSION GUIDELINES<span class="sub-nav">Everything you need to know is here</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'contributors')) echo 'class="current"';?> href="contributors">CONTRIBUTORS<span class="sub-nav">See who''s in our magazine''s latest issue</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'past-journals')) echo 'class="current"';?> href="past-journals">PAST JOURNALS<span class="sub-nav">Browse our issue archives</span></a></li>
<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'blog')) echo 'class="current"';?> href="blog">BLOG<span class="sub-nav">Just a blog</span></a></li>
</ul>
</nav>
<?php
}?>

替换为:

<?php
function nav() { ?>   
    <nav class='container'>
    <ul>
    <li><a <?php if (strpos($_SERVER['PHP_SELF'], 'current-journal')) echo 'class="current"';?> href="current-journal">CURRENT JOURNAL<span class="sub-nav">Our latest and greatest!</span></a></li>
    <li><a <?php if (strpos($_SERVER['PHP_SELF'], 'submit')) echo 'class="current"';?> href="submit">SUBMIT<span class="sub-nav">Your writing</span></a></li>
    <li><a <?php if (strpos($_SERVER['PHP_SELF'], 'submission-guidelines')) echo 'class="current"';?> href="submission-guidelines">SUBMISSION GUIDELINES<span class="sub-nav">Everything you need to know is here</span></a></li>
    <li><a <?php if (strpos($_SERVER['PHP_SELF'], 'contributors')) echo 'class="current"';?> href="contributors">CONTRIBUTORS<span class="sub-nav">See who''s in our magazine''s latest issue</span></a></li>
    <li><a <?php if (strpos($_SERVER['PHP_SELF'], 'past-journals')) echo 'class="current"';?> href="past-journals">PAST JOURNALS<span class="sub-nav">Browse our issue archives</span></a></li>
    <li><a <?php if (strpos($_SERVER['PHP_SELF'], 'blog')) echo 'class="current"';?> href="blog">BLOG<span class="sub-nav">Just a blog</span></a></li>
    </ul>
    </nav>

您不需要echo来显示html,只需在html 之前关闭php标记即可

希望这会有所帮助!!

<?php
function nav() {
?>
<nav class='container'>
<ul>
    <?php if(strpos($_SERVER['PHP_SELF'],'current-journal' )) {echo "<li><a class='current' href='current-journal'>CURRENT JOURNAL<span class='sub-nav'>Our latest and greatest!</span></a></li>"; }?>
    <?php if(strpos($_SERVER['PHP_SELF'],'submit' )) {echo "<li> <a class='current' href='submit'>SUBMIT<span class='sub-nav'>Your writing</span></a></li>"}?>
    <?php if(strpos($_SERVER['PHP_SELF'],'submission-guidelines' )) {echo "<li> <a class='current' href="submission-guidelines'>SUBMISSION GUIDELINES<span class="sub-nav">Everything you need to know is here</span></a></li>";}?>
    <?php if(strpos($_SERVER['PHP_SELF'],'contributors' )) {echo "<li> <a class='current' href='contributors'>CONTRIBUTORS<span class='sub-nav'>See who''s in our magazine''s latest issue</span></a></li>";}?>
    <?php if(strpos($_SERVER['PHP_SELF'],'past-journals' )) {echo "<li> <a class='current' href='past-journals'>PAST JOURNALS<span class='sub-nav'>Browse our issue archives</span></a></li> ";}?>
    <?php if(strpos($_SERVER['PHP_SELF'],'blog' )) {echo "<li> <a class='current' href='blog'>BLOG<span class='sub-nav'>Just a blog</span></a></li>";}?>
</ul>
</nav>
<?php
}
?>

这应该可以完成工作。