模板 usr\themes\defaultfunctions.php

<?php

if (!defined('__TYPECHO_ROOT_DIR__')) exit;

function themeConfig($form)
{

$logoUrl = new \Typecho\Widget\Helper\Form\Element\Text(
    'logoUrl',
    null,
    null,
    _t('站点 LOGO 地址'),
    _t('在这里填入一个图片 URL 地址, 以在网站标题前加上一个 LOGO')
);

$form->addInput($logoUrl);

$sidebarBlock = new \Typecho\Widget\Helper\Form\Element\Checkbox(
    'sidebarBlock',
    [
        'ShowRecentPosts'    => _t('显示最新文章'),
        'ShowRecentComments' => _t('显示最近回复'),
        'ShowCategory'       => _t('显示分类'),
        'ShowArchive'        => _t('显示归档'),
        'ShowOther'          => _t('显示其它杂项')
    ],
    ['ShowRecentPosts', 'ShowRecentComments', 'ShowCategory', 'ShowArchive', 'ShowOther'],
    _t('侧边栏显示')
);

$form->addInput($sidebarBlock->multiMode());

}

/*
function themeFields($layout)
{

$logoUrl = new \Typecho\Widget\Helper\Form\Element\Text(
    'logoUrl',
    null,
    null,
    _t('站点LOGO地址'),
    _t('在这里填入一个图片URL地址, 以在网站标题前加上一个LOGO')
);
$layout->addItem($logoUrl);

}

*/

在: $form->addInput($sidebarBlock->multiMode());
}
后面加上:

/**

  • 主题初始化
  • 自定义分类显示数量
    */

function themeInit($archive)
{

// 只在分类页面生效
if ($archive->is('category')) {
    // 获取当前分类标识(可以是别名或ID)
    $category = $archive->getArchiveSlug();
    
    // 定义需要特殊显示数量的分类
    // 格式:'分类标识' => 显示篇数
    $specialCategories = [
        'default'       => 10,  // 分类别名为"news"显示10篇
        'ds-music' => 6,  // 技术分类显示12篇
    ];
    
    // 检查当前分类是否需要特殊设置
    if (isset($specialCategories[$category])) {
        $archive->parameter->pageSize = $specialCategories[$category];
        
        // 调试信息(正式使用时可以注释掉)
        // error_log("分类 [{$category}] 已设置为显示 " . $specialCategories[$category] . " 篇");
    }
    // 如果需要所有分类都显示10篇(覆盖后台设置),取消下面的注释
    /*
    else {
        $archive->parameter->pageSize = 10;
    }
    */
}

}

/**

  • 自定义函数:获取分类显示数量配置(可选)
    */

function getCategoryPageSizeConfig()
{

// 这里可以改为从数据库或配置文件中读取
return [
    'news'       => 10,  // news为分类的别名,10为显示文章的数量
    'technology' => 12,  // 技术分类

];

}

/**

  • 自定义函数:根据分类获取显示数量(可选)
    */

function getCategoryPageSize($categorySlug)
{

$config = getCategoryPageSizeConfig();
return isset($config[$categorySlug]) ? $config[$categorySlug] : null;

}

// 如果需要添加更多自定义函数,可以在这里添加
// ... 把以上修改为:.md文本格式

标签: Typecho

添加新评论