WordPress Yorumları Tamamen Kapatma

wordpress hata
<?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);

Hızlı İletişim Formu

Sorun, teklif ya da net bir soru… kısa yazın, biz dönüş yapalım.