跳到主要内容
[Navbar 包装器占位符]
[BlogPostItem 包装器占位符 - 博客文章顶部]
[BlogPostItem 包装器占位符 - 博客文章顶部]
[BlogPostItem 包装器占位符 - 博客文章顶部]

根据条件动态加载左侧doc导航栏

· 阅读需 4 分钟

你的代码是正确的。它能实现:

  1. 在单篇文章页面显示左侧栏
  2. 排除 'csr' 分类的文章
  3. 使用 astra_content_top hook 注入到正确的位置

不过,可以建议一些优化:

function display_left_doc_sidebar() {
// 提前返回的条件判断,提高代码效率
if (!is_single() || has_category('csr') || !is_active_sidebar('left-doc')) {
return;
}

echo '<div class="left-doc-sidebar">';
dynamic_sidebar('left-doc');
echo '</div>';
}
add_action('astra_content_top', 'display_left_doc_sidebar');

优化说明:

  1. 使用提前返回模式,使代码更清晰
  2. 合并所有条件检查,减少嵌套
  3. 保留了关键的闭合div标签注释

如果需要添加CSS样式,可以在子主题的style.css中添加:

.left-doc-sidebar {
/* 添加你的样式 */
}
[Footer 包装器占位符 - 位于页脚上方]

这是通过 Docusaurus Wrapping 统一添加的底部文字内容。

ddddddd