Avatar

A 涉及文件

Archive.php
functions.php

B 改造文件

作用:新增评论置顶功能

打开文件 var/Widget/Comments/Archive.php
替换一处 新增两处代码

  1. 搜索找到以下代码:

$outputComments[$coid] = $comment;

  1. 将以上代码替换为以下代码:
 $pinchatOpt = $this->options->pinchat;
if (!empty($pinchatOpt)) {
    $pinchatCoid = explode(',', $pinchatOpt);
    $pinchatCoid = array_map('trim', $pinchatCoid);
    $pinchatCoid = array_unique($pinchatCoid);
    if (in_array($comment['coid'], $pinchatCoid)) {
        if (0 != $parent && isset($this->stack[$parent])) {
            $comment['parent'] = $parent;
            $this->threadedComments[$parent][$coid] = $comment;
        } else {
            $pinchat[$coid] = $comment;
        }
    } else {
        $outputComments[$coid] = $comment;
    } 
} else {
    $outputComments[$coid] = $comment;
}
  1. 搜索找到以下代码:

$outputComments = [];

  1. 在以上代码的上一行(或下一行)添加以下代码:

$pinchat = [];

  1. 搜索找到以下代码:

$this->stack = $outputComments;

  1. 在以上代码的上一行添加以下代码:

$outputComments = array_merge($outputComments, $pinchat); // 如果评论是以(较旧的)显示在前面,则将 $pinchat 和 $outputComments 对调位置

至此,已完成对置顶评论的输出
接着,打开文件 usr/themes/*/functions.php
创建用于自定义置顶评论的表单,在函数 themeConfig() 里添加以下代码:

$pinchat = new Typecho_Widget_Helper_Form_Element_Text(
    'pinchat', NULL, NULL,
    _t('置顶评论'),
    _t('
        1. 填入需要置顶的评论 coid 多个以半角逗号隔开,将在各自的评论列表里置顶显示<br>
        2. 仅限填入父级评论的 coid 其下的子级评论也会一并置顶
    '),
);
$form->addInput($pinchat);



至此,已完成评论置顶功能
进入主题设置里找到(置顶评论)按需设置,即可

💤
@ 木 竹 造 价