Kod:Tümünü seç
bir wordpress eklentisi yapalım bu eklenti sadece admin sayfasında bize verileri verecek. bir tablo halinde toplam yazı sayısı , toplam gösterim sayısı , toplam taslak yazı sayısı , toplam çöpteki yazı sayısı , toplam üye sayısı , toplam yorum sayısı , toplam media sayısı ve toplam veri boyutu , toplam wordpress veri tabanı boyutu , toplam veri tabanı tablo sayısı , şimdilik bu kadar ama devamı gelecekAşağıdaki örnek kod, isteklerinize uygun basit bir WordPress eklentisi oluşturur. Bu eklenti, admin panelinde "Veri Dashboard" adlı bir sayfa açarak, belirtilen istatistikleri (yazı, taslak, çöp, üye, yorum, medya sayısı ve medya dosyalarının toplam boyutu, veritabanı boyutu ve tablo sayısı) tablo halinde görüntüler.
Not:
WordPress'in varsayılan olarak "gösterim sayısı" (post view count) takibi yoktur. Bu yüzden örnekte bu değeri 0 olarak gösterdik. İleride bu işlevi eklemek için özel alan veya bir sayaç mekanizması kurmanız gerekebilir.
Medya dosyalarının boyutunu hesaplamak için uploads klasöründeki dosya boyutları toplanıyor; dosya sayısı çok fazlaysa bu işlem biraz zaman alabilir.
Ek özellikler eklemek istediğinizde, bu temel yapıyı genişletebilirsiniz.
Aşağıdaki kodu bir PHP dosyası (örneğin) olarak kaydedip, WordPress'in wp-content/plugins/ klasörüne yerleştirip eklentileri etkinleştirmeniz yeterlidir.Kod:Tümünü seç
admin-data-dashboard.phpKod:Tümünü seç
<?php /* Plugin Name: Admin Data Dashboard Description: Admin sayfasında çeşitli WordPress verilerini tablo halinde gösterir. Version: 1.0 Author: İsminiz */ if ( ! defined( 'ABSPATH' ) ) { exit; // Direkt erişimi engelle } // Admin menüye eklenti sayfası ekleyelim. add_action('admin_menu', 'add_admin_data_dashboard_menu'); function add_admin_data_dashboard_menu() { add_menu_page( 'Veri Dashboard', // Sayfa başlığı 'Veri Dashboard', // Menü başlığı 'manage_options', // Yetki 'admin-data-dashboard', // Menü slug'ı 'render_admin_data_dashboard_page', // Görüntüleme fonksiyonu 'dashicons-chart-area', // Menü ikonu 3 // Menü sırası ); } // Admin sayfasını oluşturacak fonksiyon function render_admin_data_dashboard_page() { global $wpdb; // Yazı istatistikleri $post_counts = wp_count_posts('post'); $total_posts = intval($post_counts->publish); $draft_posts = intval($post_counts->draft); $trash_posts = intval($post_counts->trash); // Gösterim sayısı: WordPress varsayılanında tutulmaz. Şimdilik 0 olarak ayarlanıyor. $total_views = 0; // Üye sayısı $user_counts = count_users(); $total_users = intval($user_counts['total_users']); // Yorum sayısı $comment_counts = wp_count_comments(); $total_comments = intval($comment_counts->approved); // Medya istatistikleri: Toplam medya sayısı ve dosya boyutları $media_args = array( 'post_type' => 'attachment', 'posts_per_page' => -1, 'post_status' => 'inherit', 'fields' => 'ids', ); $media_ids = get_posts($media_args); $total_media = count($media_ids); $total_media_size = 0; foreach ( $media_ids as $media_id ) { $file = get_attached_file($media_id); if ( $file && file_exists($file) ) { $total_media_size += filesize($file); } } // Boyutu okunabilir formata çevirelim $total_media_size_readable = size_format($total_media_size); // Veritabanı istatistikleri: Toplam veritabanı boyutu ve tablo sayısı $tables = $wpdb->get_results("SHOW TABLE STATUS"); $total_db_size = 0; foreach ( $tables as $table ) { $total_db_size += $table->Data_length + $table->Index_length; } $total_db_size_readable = size_format($total_db_size); $total_tables = count($tables); ?> <div class="wrap"> <h1>Veri Dashboard</h1> <table class="wp-list-table widefat fixed striped"> <thead> <tr> <th>Veri</th> <th>Değer</th> </tr> </thead> <tbody> <tr> <td>Toplam Yazı Sayısı</td> <td><?php echo $total_posts; ?></td> </tr> <tr> <td>Toplam Gösterim Sayısı</td> <td><?php echo $total_views; ?></td> </tr> <tr> <td>Toplam Taslak Yazı Sayısı</td> <td><?php echo $draft_posts; ?></td> </tr> <tr> <td>Toplam Çöpteki Yazı Sayısı</td> <td><?php echo $trash_posts; ?></td> </tr> <tr> <td>Toplam Üye Sayısı</td> <td><?php echo $total_users; ?></td> </tr> <tr> <td>Toplam Yorum Sayısı</td> <td><?php echo $total_comments; ?></td> </tr> <tr> <td>Toplam Media Sayısı</td> <td><?php echo $total_media; ?></td> </tr> <tr> <td>Toplam Media Veri Boyutu</td> <td><?php echo $total_media_size_readable; ?></td> </tr> <tr> <td>Toplam WordPress Veri Tabanı Boyutu</td> <td><?php echo $total_db_size_readable; ?></td> </tr> <tr> <td>Toplam Veri Tabanı Tablo Sayısı</td> <td><?php echo $total_tables; ?></td> </tr> </tbody> </table> </div> <?php } ?>