WP DEVELOP

EP027. “博客链接修复与导航高亮”

首页 WordPress 开发课程 BLOG · EP027
约 6 分钟· #EP027#BLOG
🔒 登录后可标记已读

收尾博客章节的两个小细节:首页「View All Blog Posts」按钮之前是占位符 # 链接,这一讲改成真正跳转到 /blog;头部导航的 Blog 链接同样还是占位符,也一并修好,并且仿照 About Us 链接的做法,让 Blog 链接在博客列表页、单篇文章页、分类归档、作者归档等所有跟「post」类型相关的页面上都保持高亮(黄色)。

涉及文件

  • wp-content/themes/fictional-university-theme/front-page.php (修改,只改一个 href
  • wp-content/themes/fictional-university-theme/header.php (修改,Blog 这个 <li>

代码实现


front-page.php(修改)

「From Our Blogs」区块最下面的按钮,href 从占位符改成博客列表页地址:

<p class="t-center no-margin"><a href="<?php echo site_url('/blog') ?>" class="btn btn--yellow">View All Blog Posts</a></p>

header.php(修改)

导航里 Blog 那个 <li>,参考 About Us 那一项已经写好的高亮判断逻辑,改成:

<li <?php if (get_post_type() == 'post') echo 'class="current-menu-item"' ?>><a href="<?php echo site_url('/blog') ?>">Blog</a></li>

思路:is_home() 只在博客列表首页(/blog)才为 true,单篇文章页或分类/作者归档页都不算,覆盖不到所有场景;用 get_post_type() == 'post' 判断更省事——只要当前查询涉及的内容类型是 post(博客列表、单篇文章、分类归档、作者归档全都算),Blog 链接就高亮。这也是为将来自定义文章类型(programprofessor 等)铺垫的思路:以后各自的导航项也会用类似的 get_post_type() 判断来高亮。

Hook / Function 速查

名称类型用途
get_post_type()WP 内建 function(返回值)返回当前查询内容的文章类型(postpage 等),配合 if 判断做导航高亮
is_home()WP 内建 function判断是否为博客列表首页(transcript 提到但没采用,因为覆盖不了单篇/归档页)
is_single()WP 内建 function判断是否为单篇文章页(transcript 提到但没采用)
is_archive()WP 内建 function判断是否为归档页(transcript 提到但没采用)

常见坑

  • 只用 is_home() 做高亮判断的话,点进单篇文章或分类/作者归档页时 Blog 链接就不会亮了,因为这几种页面 is_home() 都返回 false。

延伸 / 后续讲座会用到

这一讲是整个博客章节(Section 6)的收尾,transcript 明确提到下一讲开始进入自定义文章类型(custom post types),会新建 events、programs、professors、campuses 这些自定义类型,对应 COMPLETED_NOTE 的 S07-CUSTOM-POST-TYPE-入门。

Sources

Udemy:

  • Become a WordPress Developer: Unlocking Power With Code — Section 6, EP027