Wordpress Son Depremler Eklentisi Kodu (Ücretsiz)

Kodla Büyü
Bu kod, WordPress tabanlı bir sitede Boğaziçi Üniversitesi Kandilli Rasathanesi’nden alınan son 24 saat içindeki depremleri listelemek için geliştirilmiş özel bir shortcode fonksiyonudur. Şimdi adım adım ne işe yaradığını ve nasıl kullanılacağını açıklayayım:

📌 Ne İşe Yarar?
✅ Genel Özeti:
http://koeri.boun.edu.tr/rss/ adresinden depremlere ait XML (RSS) verisini çeker.

XML verisini ayrıştırır ve yalnızca son 24 saat içindeki depremleri süzerek bir tablo halinde gösterir.

Her deprem için büyüklük, derinlik, lokasyon ve zaman bilgilerini gösterir.

3.0 ve üzeri büyüklükteki depremleri turuncu renkte vurgular.

Mobil uyumlu responsive CSS içerir.

WordPress yazılarına veya sayfalarına [softindir_deprem] kodunu yazarak kullanılabilir.

Demo:



⚙️ Nasıl Kullanılır?
1. 📥 WordPress’e Eklemek:
Alt kısımda bulunan uzun kodu WordPress sitenizin functions.php dosyasına veya Code Snippets gibi bir WP eklentisi ile ekleyin.

2. 🧩 Shortcode Kullanımı:
Herhangi bir yazı veya sayfaya şu şekilde ekleyin:
Kod:
[softindir_deprem]
Bu kısım çağrıldığında, otomatik olarak son 24 saatteki depremleri tablo olarak gösterir.

PHP:
/**
 * Softindir Deprem Verileri Shortcode'u
 * Shortcode: [softindir_deprem]
 */
function softindir_deprem_verisi_cek() {
    date_default_timezone_set('Europe/Istanbul');
    $softindir_rss_url = "http://koeri.boun.edu.tr/rss/";
    $softindir_rss_verisi = @file_get_contents($softindir_rss_url);

    if ($softindir_rss_verisi === FALSE) {
        return '<p style="color:red; text-align:center; padding:15px 10px;">Boğaziçi Üniversitesi verilerine ulaşılamadı.</p>';
    }

    $softindir_xml = @simplexml_load_string($softindir_rss_verisi);
    if ($softindir_xml === FALSE) {
        return '<p style="color:red; text-align:center; padding:15px 10px;">XML verisi okunamadı.</p>';
    }

    $softindir_simdiki_zaman = time();
    $softindir_deprem_listesi = [];

    foreach ($softindir_xml->channel->item as $softindir_item) {
        $softindir_yayin_zamani = strtotime((string)$softindir_item->pubDate);
        if (($softindir_simdiki_zaman - $softindir_yayin_zamani) > (24 * 60 * 60)) continue;

        $softindir_baslik = (string)$softindir_item->title;
        $softindir_aciklama = (string)$softindir_item->description;

        // Büyüklük verisini al (öncelik Mw, yoksa ML)
        $softindir_buyukluk = null;
        
        if (preg_match('/([\d\.]+)\s*\(Mw\)/i', $softindir_baslik, $softindir_buyukluk_eslesme)) {
            $softindir_buyukluk = number_format((float)$softindir_buyukluk_eslesme[1], 1);
        }
        elseif (preg_match('/([\d\.]+)\s*\(ML\)/i', $softindir_baslik, $softindir_buyukluk_eslesme)) {
            $softindir_buyukluk = number_format((float)$softindir_buyukluk_eslesme[1], 1);
        }
        
        if ($softindir_buyukluk === null) continue;

        // Lokasyon bilgisi
        $softindir_lokasyon = '-';
        if (preg_match('/\((Mw|ML)\)\s*(.*?)\s*\d{4}\./', $softindir_baslik, $softindir_lokasyon_eslesme)) {
            $softindir_lokasyon = trim(preg_replace('/\s+/', ' ', $softindir_lokasyon_eslesme[2]));
        }

        // Derinlik bilgisi
        $softindir_derinlik = '-';
        if (preg_match('/\s([\d\.]+)\s*(km)?\s*$/i', $softindir_aciklama, $softindir_derinlik_eslesme)) {
            $softindir_derinlik = number_format((float)$softindir_derinlik_eslesme[1], 1) . ' km';
        }

        $softindir_deprem_listesi[] = [
            'derinlik' => $softindir_derinlik,
            'buyukluk' => $softindir_buyukluk,
            'lokasyon' => $softindir_lokasyon,
            'zaman' => date('d.m.Y H:i', $softindir_yayin_zamani)
        ];
    }

    if (empty($softindir_deprem_listesi)) {
        return '<p style="text-align:center; padding:15px 10px;">Son 24 saatte deprem kaydedilmedi.</p>';
    }

    ob_start();
    ?>
    <div class="softindir-deprem-container" style="width:100%; max-width:100%; padding:0 10px; box-sizing:border-box;">
        <h3 style="text-align:center; margin:15px 0 10px; font-size:1.3em; line-height:1.4;">Son Depremler</h3>
        <p style="text-align:center; font-size:0.9em; color:#666; margin-bottom:15px; line-height:1.4;">Son 24 saat | Kaynak: KOERI - <?php echo date('d.m.Y H:i'); ?></p>
        
        <div style="width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;">
            <table style="width:100%; min-width:100%; border-collapse:collapse; font-size:16px;">
                <thead>
                    <tr style="background-color:#2c3e50; color:#fff;">
                        <th style="padding:10px 5px; text-align:center; border:1px solid #ddd; font-weight:500; font-size:0.9em;">Derinlik</th>
                        <th style="padding:10px 5px; text-align:center; border:1px solid #ddd; font-weight:500; font-size:0.9em;">Büyüklük</th>
                        <th style="padding:10px 5px; text-align:center; border:1px solid #ddd; font-weight:500; font-size:0.9em;">Lokasyon</th>
                        <th style="padding:10px 5px; text-align:center; border:1px solid #ddd; font-weight:500; font-size:0.9em;">Zaman</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($softindir_deprem_listesi as $softindir_deprem): ?>
                    <tr style="<?php echo ($softindir_deprem['buyukluk'] >= 3.0) ? 'background-color:#ffccbc;' : ''; ?>">
                        <td style="padding:8px 5px; border:1px solid #eee; text-align:center; font-size:0.85em;"><?php echo $softindir_deprem['derinlik']; ?></td>
                        <td style="padding:8px 5px; border:1px solid #eee; text-align:center; font-weight:bold; font-size:0.9em;"><?php echo $softindir_deprem['buyukluk']; ?></td>
                        <td style="padding:8px 5px; border:1px solid #eee; text-align:center; font-size:0.85em; word-break:break-word;"><?php echo $softindir_deprem['lokasyon']; ?></td>
                        <td style="padding:8px 5px; border:1px solid #eee; text-align:center; font-size:0.85em;"><?php echo $softindir_deprem['zaman']; ?></td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
        
        <p style="text-align:center; font-size:0.8em; color:#999; margin-top:15px; padding-bottom:10px; line-height:1.4;">
            <em>3.0 ve üzeri depremler turuncu renkle işaretlenmiştir</em>
        </p>
    </div>

    <style>
        @media screen and (max-width: 480px) {
            .softindir-deprem-container {
                padding:0 5px;
            }
            .softindir-deprem-container h3 {
                font-size:1.2em;
                margin:10px 0 8px;
            }
            .softindir-deprem-container p {
                font-size:0.85em;
                margin-bottom:10px;
            }
            .softindir-deprem-container table {
                font-size:13px;
            }
            .softindir-deprem-container th,
            .softindir-deprem-container td {
                padding:6px 3px !important;
                font-size:0.8em !important;
            }
        }
    </style>
    <?php
    return ob_get_clean();
}
add_shortcode('softindir_deprem', 'softindir_deprem_verisi_cek');
 
BBNET
Geri
Üst