diff --git a/assets/css/content.css b/assets/css/content.css index e7b84ff..5e985ac 100644 --- a/assets/css/content.css +++ b/assets/css/content.css @@ -412,12 +412,6 @@ .single-related-empty { color: var(--text-secondary); } - -.single-article-comments { - max-width: 900px; - margin: 64px auto 0; -} - @media (max-width: 980px) { .single-article-page { padding: 34px 0 56px; @@ -468,10 +462,6 @@ grid-template-columns: 1fr; gap: 20px; } - - .single-article-comments { - margin-top: 48px; - } } /* ========================================= @@ -606,236 +596,6 @@ border-top: 1px solid var(--border-muted); } -/* --- Comments Section (Pro Timeline) --- */ -.gh-pro-comments { - max-width: 900px; - margin: 0 auto; -} - -.timeline-header h3 { - font-size: 1.25rem; - margin-bottom: 24px; - border-bottom: 1px solid var(--border-default); - padding-bottom: 8px; -} - -/* Reuse existing gh-timeline styles from previous step but center align */ -.gh-timeline { - margin-top: 0; - margin-left: 0; /* Clear previous offset */ -} - -/* Vertical Timeline Line - NEW FIX */ -.gh-timeline::before { - content: ""; - position: absolute; - top: 0; - bottom: 0; - left: 20px; /* Center of 40px avatar */ - width: 2px; - background-color: var(--border-muted); - z-index: 0; - display: block; /* Ensure it is displayed */ -} - -/* Fix z-index for items so line is behind */ -.gh-timeline-item { - position: relative; - z-index: 1; -} - -ol.comment-list { - list-style: none; /* 去掉列表默认样式 */ - padding: 0; - margin: 0; -} - -/* Timeline Item (Main Post & Comments) */ -.gh-timeline-item, -.gh-comment-item { - display: flex; - gap: 16px; - margin-bottom: 24px; - position: relative; - z-index: 1; -} - -/* Avatar Column */ -.gh-avatar, -.gh-comment-avatar { - flex-shrink: 0; - width: 40px; -} - -.gh-avatar img, -.gh-comment-avatar img { - width: 40px; - height: 40px; - border-radius: 50%; - border: 1px solid var(--border-muted); -} - -/* Content Box (Speech Bubble) */ -.gh-item-box, -.gh-comment-box { - flex-grow: 1; - min-width: 0; - border: 1px solid var(--border-default); - border-radius: 6px; - background-color: var(--bg-card); - position: relative; -} - -/* Speech Bubble Beak (Arrow) - Desktop Only */ -@media (min-width: 768px) { - .gh-item-box::before, .gh-item-box::after, - .gh-comment-box::before, .gh-comment-box::after { - content: " "; - position: absolute; - top: 11px; - right: 100%; - height: 0; - width: 0; - border: solid transparent; - pointer-events: none; - } - - .gh-item-box::after, - .gh-comment-box::after { - border-right-color: var(--bg-surface); /* Header BG color */ - border-width: 7px; - margin-top: -7px; - } - - .gh-item-box::before, - .gh-comment-box::before { - border-right-color: var(--border-default); - border-width: 8px; - margin-top: -8px; - } -} - -/* Box Header */ -.gh-box-header, -.gh-comment-header { - padding: 8px 16px; - background-color: var(--bg-surface); - border-bottom: 1px solid var(--border-default); - border-top-left-radius: 6px; - border-top-right-radius: 6px; - display: flex; - justify-content: space-between; - align-items: center; - font-size: 14px; - color: var(--text-secondary); -} - -.gh-header-meta { - display: flex; - align-items: center; - gap: 4px; - flex-wrap: wrap; -} - -.gh-comment-meta, -.gh-header-meta { - display: flex; - align-items: center; - gap: 4px; - flex-wrap: wrap; -} - -.gh-header-meta strong, -.gh-author-name a { - color: var(--text-primary); - font-weight: 600; - text-decoration: none; -} - -.gh-header-meta a, -.gh-comment-meta time, -.gh-comment-meta a { - color: var(--text-secondary); - text-decoration: none; - font-size: 0.85rem; -} - -.gh-header-meta a:hover, -.gh-comment-meta time:hover, -.gh-comment-meta a:hover { - color: var(--color-primary); - text-decoration: underline; -} - -/* Badge (Author/Member) */ -.gh-badge { - display: inline-block; - padding: 2px 7px; - font-size: 12px; - font-weight: 500; - line-height: 18px; - border-radius: 2em; - border: 1px solid var(--border-default); - color: var(--text-secondary); - margin-left: 8px; -} - -/* Box Body */ -.gh-box-body, -.gh-comment-body { - padding: 16px; - background-color: var(--bg-card); - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - overflow-wrap: break-word; -} - -.gh-box-body .entry-content, -.gh-comment-body { - font-size: 15px; - line-height: 1.6; -} - -/* Comment Form Styles */ -.gh-comment-form textarea { - display: block; - width: 100%; - padding: 8px 12px; - border: 1px solid var(--border-default); - border-radius: 6px; - background-color: var(--bg-surface); - color: var(--text-primary); - font-family: inherit; - resize: vertical; - min-height: 100px; -} - -.gh-comment-form textarea:focus { - border-color: var(--color-primary); - outline: none; - box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.3); -} - -.form-submit { - text-align: right; - margin-top: 10px; -} - -.gh-comment-form input[type="submit"] { - background-color: var(--color-success); - color: #fff; - border: 1px solid rgba(27, 31, 36, 0.15); - border-radius: 6px; - padding: 5px 16px; - font-size: 14px; - font-weight: 600; - cursor: pointer; -} - -.gh-comment-form input[type="submit"]:hover { - background-color: #2c974b; -} - /* Buttons */ .btn-sm { font-size: 12px; diff --git a/comments.php b/comments.php deleted file mode 100644 index cdae5c0..0000000 --- a/comments.php +++ /dev/null @@ -1,66 +0,0 @@ - - -
- - -
-

- -

-
- -
    - 'ol', - 'short_ping' => true, - 'avatar_size' => 48, - 'callback' => 'itstudio_comment_callback' // We will need to define this in functions.php or handle logic here if simple - )); - ?> -
- - -

- - -
- 'gh-comment-form', - 'title_reply_before' => '

', - 'title_reply_after' => '

', - 'title_reply' => '', // Handled by data-cn/en in before tag - 'label_submit' => __('发表评论', 'itstudio'), // This submits button text, harder to change via attr, usually needs JS or just leave as is if acceptable - 'submit_button' => '', - 'comment_notes_before' => '', - 'comment_field' => '
', - )); - ?> -
- -
diff --git a/functions.php b/functions.php index 05fdceb..342b5ae 100644 --- a/functions.php +++ b/functions.php @@ -6,8 +6,6 @@ function itstudio_theme_setup() { add_theme_support('automatic-feed-links'); add_theme_support('html5', array( 'search-form', - 'comment-form', - 'comment-list', 'gallery', 'caption', )); @@ -20,6 +18,47 @@ function itstudio_theme_setup() { } add_action('after_setup_theme', 'itstudio_theme_setup'); +add_filter('comments_open', '__return_false', 20, 2); +add_filter('pings_open', '__return_false', 20, 2); +add_filter('comments_array', '__return_empty_array', 10, 2); + +function itstudio_disable_comments_post_types() { + $post_types = array('post', 'page', 'announcement', 'news'); + foreach ($post_types as $post_type) { + if (post_type_supports($post_type, 'comments')) { + remove_post_type_support($post_type, 'comments'); + } + if (post_type_supports($post_type, 'trackbacks')) { + remove_post_type_support($post_type, 'trackbacks'); + } + } +} +add_action('init', 'itstudio_disable_comments_post_types', 100); + +function itstudio_hide_comments_menu() { + remove_menu_page('edit-comments.php'); +} +add_action('admin_menu', 'itstudio_hide_comments_menu', 999); + +function itstudio_hide_admin_bar_comments() { + remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60); +} +add_action('init', 'itstudio_hide_admin_bar_comments'); + +function itstudio_redirect_comments_admin_pages() { + global $pagenow; + if ($pagenow === 'edit-comments.php' || $pagenow === 'comment.php') { + wp_safe_redirect(admin_url()); + exit; + } +} +add_action('admin_init', 'itstudio_redirect_comments_admin_pages'); + +function itstudio_remove_comments_dashboard_widget() { + remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); +} +add_action('wp_dashboard_setup', 'itstudio_remove_comments_dashboard_widget'); + function itstudio_apply_site_identity() { $site_name = base64_decode('54ix54m55bel5L2c5a6k'); $site_tagline = base64_decode('54ix54m55bel5L2c5a6k5a6Y5pa5572R56uZ'); @@ -330,81 +369,6 @@ function itstudio_news_fallback() { } add_action('template_redirect', 'itstudio_news_fallback'); -/** - * GitHub 风格评论 - */ -function itstudio_comment_callback($comment, $args, $depth) { - ?> -
  • > -
    - -
    -
    - -
    - comment_approved == '0') : ?> - -
    - - -
    -
    -
  • - - -
    -
    -

    -
    - -
    - -
    -
    -