限制子比主题侧边栏归档的行数

Auth:老郭       Date:2024/06/07       Cat:网络       Word:共 665 个字符/单词       Views:48

老郭喜欢在wordpress的侧边栏里添加一个“归档”栏目,这样可以使博客看上去更加的正规一点。不过子比主题和其他的wordpress主题一样,归档存在一个问题,就是随着时间的增加,归档栏目的行数也会不断的增加,久而久之,归档就会变得越来越长,影响博客的整体美观。

对于老郭这样有强迫症的人来说肯定是不能容忍的,于是就想着能不能有什么办法让归档只显示一定的行数,剩下的用”更多“来表示,并通过”更多“链接到另一个网页来显示所有的归档。

也许是对这个需求的人不多,网上关于解决这个问题的方法介绍并不多,没办法,老郭只能求助于AI了。但这又有一个问题,AI只能解答如何在wordpress中限制侧边栏归档行数的问题,而老郭使用的是子比主题,AI没有专门针对子比主题的解决方案,于是老郭只能在AI回答的基础上自己再琢磨。最后,老郭决定舍弃wordpress自带的归档功能,通过短代码的形式,在侧边栏里自建一个新的”归档“栏目。

第一步是在主题文件目录下的function.php文件里先自定义这个短代码,不过由于子比主题的function.php文件是通过引用func.php中的代码来实现功能的,目的是为了防止主题更新造成function.php文件被覆盖。

限制子比主题侧边栏归档的行数 - 第1张图片

那么就好办了,在新建的func.php文件中添加以下代码来自定义“custom_​archives”这个短代码。其中,$limit = 24是需要显示的行数,老郭这里设置的是显示24个月的。

function custom_​archives_​list() {
    global $wpdb;

    // 获取最近 24 个月的归档
    $limit = 24;
    $query = "SELECT DISTINCT YEAR(post_​date) AS year, MONTH(post_​date) AS month, COUNT(ID) as posts 
              FROM $wpdb->posts 
              WHERE post_​type = 'post' AND post_​status = 'publish' 
              GROUP BY year, month 
              ORDER BY post_​date DESC 
              LIMIT $limit";

    $archives = $wpdb->get_​results($query);
    $output = '<ul>';

    // 生成归档列表,年份在前,月份在后
    foreach ($archives as $archive) {
        $url = get_​month_​link($archive->year, $archive->month);
        $month_​padded = str_​pad($archive->month, 2, '0', STR_​PAD_​LEFT);
        $text = sprintf('%d年 %s月', $archive->year, $month_​padded);
        $output .= sprintf('<li><a href="%s">%s</a> (%d)</li>', esc_​url($url), esc_​html($text), $archive->posts);
    }

    // 添加 "更多" 链接
    $output .= '<li><a href="' . esc_​url(home_​url('/archives')) . '">更多……</a></li>';
    $output .= '</ul>';

    return $output;
}

add_​shortcode('custom_​archives', 'custom_​archives_​list');

第二步就是在侧边栏的合适位置添加一个文本,并在文本里添加这个自定义的短代码。

限制子比主题侧边栏归档的行数 - 第2张图片

第三步,为了让“更多”可以链接到正确的地方,还需要新建一个名为“archives”的页面。这个用子比主题就比较方便了,因为子比主题自带了“归档”模板。让新建的“archives”的页面保持空白,然后在右侧的模板里选择“Zibll—文章归档”即可。

限制子比主题侧边栏归档的行数 - 第3张图片

老郭博客文章均为原创,本文地址 https://lgbk.cn/archives/1722.html,转载请以链接形式注明出处。

作者:

《限制子比主题侧边栏归档的行数》留言数:0

发表留言