zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

typecho コメント返信 @コメントした人

typecho ではコメント時にデフォルトで @ コメント者を指定する機能がありませんが、コードを追加することで実現できます。

functions.php に以下を追加します:

/*
* コメント返信時 @ コメント者
*/
function get_comment_at($coid)
{
    $db   = Typecho_Db::get();
    $prow = $db->fetchRow($db->select('parent,status')->from('table.comments')
        ->where('coid = ?', $coid));
    $mail = "";
    $parent = @$prow['parent'];
    if ($parent != "0") {
        $arow = $db->fetchRow($db->select('author,status,mail')->from('table.comments')
            ->where('coid = ?', $parent));
        @$author = @$arow['author'];
        $mail = @$arow['mail'];
        if(@$author && $arow['status'] == "approved"){
            if (@$prow['status'] == "waiting"){
                echo '<p class="commentReview">(コメント審査中))</p>';
            }
            echo '<a href="#comment-' . $parent . '">@' . $author . '</a>';
        }else{
            if (@$prow['status'] == "waiting"){
                echo '<p class="commentReview">(コメント審査中))</p>';
            }else{
                echo '';
            }
        }

    } else {
        if (@$prow['status'] == "waiting"){
            echo '<p class="commentReview">(コメント審査中))</p>';
        }else{
            echo '';
        }
    }
}

次に、comments.php でコメント内容を出力するコードの前に以下を追加します:

<?php $parentMail = get_comment_at($comments->coid)?><?php echo $parentMail;?>

▼コードの例
1654569311759.png

▼効果の画像
1654569512094.png


私のブログは間もなく Tencent Cloud + コミュニティに同期されます。皆さんの参加をお待ちしています:https://cloud.tencent.com/developer/support-plan?invite_code=17ctk6evsjk5b

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。