Şubat 26, 2026
Datweb
<?php
/**
* Plugin Name: DW - Yorumları Komple Kapat
* Description: WordPress genelinde yorumları, pingback/trackback’i ve ilgili yönetim ekranlarını tamamen kapatır.
* Version: 1.0.0
* Author: DW
*/
if (!defined('ABSPATH')) { exit; }
/**
* 1) Ön yüzde yorumları/pingleri kapat + mevcut yorumları gösterme
*/
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);
/**
* 2) Yorum feed’ini kapat (yorum RSS linklerini de sustur)
*/
add_filter('feed_links_show_comments_feed', '__return_false');
/**
* 3) Tema comment-reply scriptini yükletme (bazı temalar otomatik basar)
*/
add_action('wp_enqueue_scripts', function () {
wp_deregister_script('comment-reply');
}, 20);
/**
* 4) Admin tarafında yorum desteğini kaldır + yorum sayfalarını gizle
*/
add_action('admin_init', function () {
// Tüm post type’lardan yorum desteğini kaldır
$post_types = get_post_types(array('public' => true), 'names');
foreach ($post_types as $pt) {
if (post_type_supports($pt, 'comments')) {
remove_post_type_support($pt, 'comments');
}
if (post_type_supports($pt, 'trackbacks')) {
remove_post_type_support($pt, 'trackbacks');
}
}
// Yorum yönetim sayfalarına girilirse panel’e at
global $pagenow;
$blocked = array('edit-comments.php', 'comment.php');
if (in_array($pagenow, $blocked, true)) {
wp_safe_redirect(admin_url());
exit;
}
// Yeni yazılarda varsayılan yorum/ping kapalı olsun
add_filter('pre_option_default_comment_status', function () { return 'closed'; });
add_filter('pre_option_default_ping_status', function () { return 'closed'; });
});
/**
* 5) Admin menülerinden yorumları kaldır + dashboard kutusunu kaldır
*/
add_action('admin_menu', function () {
remove_menu_page('edit-comments.php');
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
});
/**
* 6) Admin bar’daki yorum ikonunu kaldır
*/
add_action('admin_bar_menu', function ($wp_admin_bar) {
$wp_admin_bar->remove_node('comments');
}, 999);
/**
* 7) REST API yorum endpoint’ini kapat (/wp/v2/comments)
*/
add_filter('rest_endpoints', function ($endpoints) {
if (isset($endpoints['/wp/v2/comments'])) {
unset($endpoints['/wp/v2/comments']);
}
if (isset($endpoints['/wp/v2/comments/(?P<id>[\d]+)'])) {
unset($endpoints['/wp/v2/comments/(?P<id>[\d]+)']);
}
return $endpoints;
});
/**
* 8) XML-RPC pingback’i kapat (eski sistemler için)
*/
add_filter('xmlrpc_methods', function ($methods) {
unset($methods['pingback.ping']);
unset($methods['pingback.extensions.getPingbacks']);
return $methods;
});
/**
* 9) Yönetim listelerinde “Yorumlar” sütununu kaldır (post/page listeleri)
*/
add_filter('manage_posts_columns', function ($cols) {
if (isset($cols['comments'])) unset($cols['comments']);
return $cols;
}, 20);
add_filter('manage_pages_columns', function ($cols) {
if (isset($cols['comments'])) unset($cols['comments']);
return $cols;
}, 20);