📌 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.
⚙️ Nasıl Kullanılır?
1. 📥 WordPresse 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');