0

我有以下面包屑代码(在functions.php中)。它工作正常,但它有太多的 if 语句。也许更合乎逻辑的重新配置来切换/案例?我该怎么做?

function the_breadcrumb()
{
    if (!is_front_page())
    {
        echo '<li><a href="' . get_option( 'home' ) . '"> Home </a><li>';

        if (is_category() || is_single()) the_category(' ');
        if (is_page()) the_title();
        if (is_archive()) echo "<span class='slicer'></span>";
        if (is_single()) echo "<span class='slicer'></span>";
        if (!is_category() && is_single()) the_title();
    }
    else {
        echo 'Home';
    }
}
4

1 回答 1

0

所以..我更新了我的功能,但我仍然在想——这不是普遍的。

function do_the_breadcrumb() {
echo '<ol class="breadcrumb">';
if (!is_home()) {
    echo '<li><a href="'.get_option('home').'"> Home </a></li>';
    if (is_category() || is_single()) {
        echo '<li>';
        the_category(' </li><li> ');
        if (is_single()) {
            echo "</li><li class='active'>";
            the_title();
            echo '</li>';
        }
    } elseif (is_page()) {
        echo '<li class="active">';
        echo the_title();
        echo '</li>';
    }
    elseif (is_tag()) { echo the_tags("<li class='active'>Following tags: &nbsp; </li>","&nbsp;<span class='slicer'></span>");}
    elseif (is_archive()) { echo "<li class='active'>Archive Page</li>"; }
    elseif (is_author()) { echo "<li class='active'>Author Archive</li>";}
    elseif (is_search()) { echo "<li class='active'>Search Page</li>";}
}
elseif (isset($_GET['paged']) && !empty($_GET['paged']))
{
    echo '<li><a href="'.get_option('home').'"> Home </a></li>'."<li class='active'>Blog Pages</li>";
}
else {
    echo"<li class='active'> Home </li>";
}
echo "</ol>";

}

于 2013-10-05T12:55:50.573 回答