• 05-05-2025, 19:32:40
    #1
    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şağıda açıklıyorum:


    📌 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 [indirzip_deprem] kodunu yazarak kullanılabilir.
    Demo: https://www.indir.zip/wordpress-ucre...emler-scripti/

    ⚙️ Nasıl Kullanılır?
    1. 📥 WordPress’e Ekleme:
    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:
    [indirzip_deprem]
    Bu kısım çağrıldığında, otomatik olarak son 24 saatteki depremleri tablo olarak gösterir.


    /**
     * Indirzip Deprem Verileri Shortcode'u
     * Shortcode: [indirzip_deprem]
     */
    function indirzip_deprem_verisi_cek() {
        date_default_timezone_set('Europe/Istanbul');
        $indirzip_rss_url = "http://koeri.boun.edu.tr/rss/";
        $indirzip_rss_verisi = @file_get_contents($indirzip_rss_url);
     
        if ($indirzip_rss_verisi === FALSE) {
            return '<p style="color:red; text-align:center; padding:15px 10px;">Boğaziçi Üniversitesi verilerine ulaşılamadı.</p>';
        }
     
        $indirzip_xml = @simplexml_load_string($indirzip_rss_verisi);
        if ($indirzip_xml === FALSE) {
            return '<p style="color:red; text-align:center; padding:15px 10px;">XML verisi okunamadı.</p>';
        }
     
        $indirzip_simdiki_zaman = time();
        $indirzip_deprem_listesi = [];
     
        foreach ($indirzip_xml->channel->item as $indirzip_item) {
            $indirzip_yayin_zamani = strtotime((string)$indirzip_item->pubDate);
            if (($indirzip_simdiki_zaman - $indirzip_yayin_zamani) > (24 * 60 * 60)) continue;
     
            $indirzip_baslik = (string)$indirzip_item->title;
            $indirzip_aciklama = (string)$indirzip_item->description;
     
            // Büyüklük verisini al (öncelik Mw, yoksa ML)
            $indirzip_buyukluk = null;
            
            if (preg_match('/([\d\.]+)\s*\(Mw\)/i', $indirzip_baslik, $indirzip_buyukluk_eslesme)) {
                $indirzip_buyukluk = number_format((float)$indirzip_buyukluk_eslesme[1], 1);
            }
            elseif (preg_match('/([\d\.]+)\s*\(ML\)/i', $indirzip_baslik, $indirzip_buyukluk_eslesme)) {
                $indirzip_buyukluk = number_format((float)$indirzip_buyukluk_eslesme[1], 1);
            }
            
            if ($indirzip_buyukluk === null) continue;
     
            // Lokasyon bilgisi
            $indirzip_lokasyon = '-';
            if (preg_match('/\((Mw|ML)\)\s*(.*?)\s*\d{4}\./', $indirzip_baslik, $indirzip_lokasyon_eslesme)) {
                $indirzip_lokasyon = trim(preg_replace('/\s+/', ' ', $indirzip_lokasyon_eslesme[2]));
            }
     
            // Derinlik bilgisi
            $indirzip_derinlik = '-';
            if (preg_match('/\s([\d\.]+)\s*(km)?\s*$/i', $indirzip_aciklama, $indirzip_derinlik_eslesme)) {
                $indirzip_derinlik = number_format((float)$indirzip_derinlik_eslesme[1], 1) . ' km';
            }
     
            $indirzip_deprem_listesi[] = [
                'derinlik' => $indirzip_derinlik,
                'buyukluk' => $indirzip_buyukluk,
                'lokasyon' => $indirzip_lokasyon,
                'zaman' => date('d.m.Y H:i', $indirzip_yayin_zamani)
            ];
        }
     
        if (empty($indirzip_deprem_listesi)) {
            return '<p style="text-align:center; padding:15px 10px;">Son 24 saatte deprem kaydedilmedi.</p>';
        }
     
        ob_start();
        ?>
        <div class="indirzip-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 ($indirzip_deprem_listesi as $indirzip_deprem): ?>
                        <tr style="<?php echo ($indirzip_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 $indirzip_deprem['derinlik']; ?></td>
                            <td style="padding:8px 5px; border:1px solid #eee; text-align:center; font-weight:bold; font-size:0.9em;"><?php echo $indirzip_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 $indirzip_deprem['lokasyon']; ?></td>
                            <td style="padding:8px 5px; border:1px solid #eee; text-align:center; font-size:0.85em;"><?php echo $indirzip_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) {
                .indirzip-deprem-container {
                    padding:0 5px;
                }
                .indirzip-deprem-container h3 {
                    font-size:1.2em;
                    margin:10px 0 8px;
                }
                .indirzip-deprem-container p {
                    font-size:0.85em;
                    margin-bottom:10px;
                }
                .indirzip-deprem-container table {
                    font-size:13px;
                }
                .indirzip-deprem-container th,
                .indirzip-deprem-container td {
                    padding:6px 3px !important;
                    font-size:0.8em !important;
                }
            }
        </style>
        <?php
        return ob_get_clean();
    }
    add_shortcode('indirzip_deprem', 'indirzip_deprem_verisi_cek');
  • 05-05-2025, 19:48:05
    #2
    Hocam web site sizin mi? Öyleyse yayımlanmak üzere ücretsiz bir eklenti göndermek isterim size
  • 06-05-2025, 06:01:30
    #3
    Şu an için ihtaç yok. İlginiz için teşekkür ederim.
  • 14-11-2025, 11:10:47
    #4
    Kategori Moderatörü
    Teşekkürler bi sitemde kullanayım bunu elinize sağlık.
  • 23-04-2026, 22:28:12
    #5
    SrdL adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler bi sitemde kullanayım bunu elinize sağlık.
    Deneme şansınız oldu mu. Hata vs aldınız mı, herhangi bir sorun olursa memnuniyetle yardımcı olmak isterim 😊
  • 25-04-2026, 13:51:13
    #6
    Kategori Moderatörü
    TekinY adlı üyeden alıntı: mesajı görüntüle
    Deneme şansınız oldu mu. Hata vs aldınız mı, herhangi bir sorun olursa memnuniyetle yardımcı olmak isterim 😊
    Merhaba sanırım sizden aldığım kodla yapmıştık.
    https://mustafagokturk.com/son-depre...ka-depremleri/ sorun görünmüyor çalışıyor şuanda.

    Teşekkür ediyorum.