[WordPress]Kratos主题实现侧边栏仅在文章页面随动

前言

Kratos是一款轻便简约的WordPress免费主题,主题提供了很多自定义配置,本文主要对侧边栏随动功能做出自定义修改。

这个侧边栏随动功能是使用了css的sticky属性进行控制,在右侧widgets过多的情况下使用体验不是那么好,会导致多出的widgets在页面滑动到最底端之前无法显示。

这并非是我们想要的,我最开始打开这个功能的初衷只是想在文章页面固定文章目录,毕竟如果文章有目录的话,读者自然是希望目录能一直显示,而不是点击了之后目录的widgets会跟随页面上移而消失,这样目录就没有存在的意义了。至于主页,页面高度是固定的,侧边栏固不固定没有什么太大的意义。

修改主题配置文件

想要实现让侧边栏只在文章页面随动,我们先要找到主题源代码实现这个功能的地方。

以Kratos 4.2.4为例,相关实现代码在[mark]inc⇒theme-core.php[/mark]

if (kratos_option('g_sticky', false)) {
           wp_add_inline_style('kratos', '.sticky-sidebar {
               position: sticky;
               top: 8px;
               height: 100%;
           }');
       }

我们只需要在if里面多加一个判断是否为文章页面的条件即可,WordPress给我们提供了这样的函数:

  1. is_home() : 是否为主页
  2. is_single() : 是否为内容页(Post)
  3. is_page() : 是否为内容页(Page)
  4. is_category() : 是否为Category/Archive页
  5. is_tag() : 是否为Tag存档页

......

[warning]将if修改为多条件判断需要加一层括号[/warning]

或者你可以复制以下代码进行替换:

if ((kratos_option('g_sticky', false)) && is_single()) {
           wp_add_inline_style('kratos', '.sticky-sidebar {
               position: sticky;
               top: 8px;
               height: 100%;
           }');
       }

如此,便实现了让侧边栏仅在文章页面随动,目录会一直在右边显示(请先在主题设置中开启侧边栏随动功能)

版权声明:
作者:小鱼
链接:https://afish.org/index.php/2023/10/12/stationary_widgets/
来源:小鱼的blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>