EP027. “博客链接修复与导航高亮”
🔒 登录后可标记已读收尾博客章节的两个小细节:首页「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 链接就高亮。这也是为将来自定义文章类型(program、professor 等)铺垫的思路:以后各自的导航项也会用类似的 get_post_type() 判断来高亮。
Hook / Function 速查
| 名称 | 类型 | 用途 |
|---|---|---|
get_post_type() | WP 内建 function(返回值) | 返回当前查询内容的文章类型(post、page 等),配合 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