我有以下代码的代码(在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';
}
}
答案 0 :(得分: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: </li>"," <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>";
}