typecho通过自定义段不同模式前端按照不同模式显示分类不同

本来做导航的,想着如果是文章也能同时在首页分开显示就好了而不是都显示在一起,在首页因为公用一个分类导致文章也会进入导航的分类里面,这样显示的就不太好,下面的方式是通过js渲染的方法判断是导航还是文章然后对应的写进不同的区域,即同个分类包含两种模式显示,这样导航模式下分类全部显示导航的,文章区域全部显示文章的。

// 文章自定义字段
function themeFields($layout) {
    $url = new Typecho_Widget_Helper_Form_Element_Textarea('url', NULL, '', _t('跳转链接'), _t('请输入跳转URL,建议不用以 / 结尾。'));
    $layout->addItem($url);
    
    // 将单选框(Radio)改为下拉选择框(Select)
    $mode = new Typecho_Widget_Helper_Form_Element_Select(
        'mode',
        array(
            'navigation' => '导航模式',
            'article' => '文章模式',
        ),
        'navigation', // 默认选中项(字符串形式)
        '显示方式',
        '介绍:选择一种显示方式(导航模式、文章模式或网站关闭页面)'
    );
    $layout->addItem($mode);
}

 

 

这样的做法实现了在首页是按照自定义分类的不会受限于分类显示,如本身有大量文章配置此功能需要全部执行一遍更新,因为已发布的文章缺少mode字段值导致的。新发布的文章会正确保存mode字段(导航 / 文章模式),而旧文章可能没有这个字段,导致 JavaScript 无法正确识别其模式从而不显示,仅供测试,记录一下

------本页内容已结束,感谢您的浏览------
© 版权声明
THE END
喜欢就支持以下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容