Bazen WordPress MySQL ile bağlanamıyor. Ya da sunucu taraflı bir sorundan dolayı veritabanı hatası sayfası alıyoruz. WordPress altyapısında bunun için bir çıktı oluşturuluyor ve genelde bu -biz değiştirmezsek- “Error Establishing a Database Connection” yazılı bir HTML çıktısı oluyor. Birazdan bunu daha düzgün bir şekle almak için güzel bir dosyamız olacak.
Bu geçicidir demek önemli
Google ve diğer arama motorlarına bunun geçici bir durum olduğunu aktarmalıyız.
Aşağıdaki şablonu kullanarak bunu yapabiliriz. Aynı zamanda bu şablon içerisinde site sahibine e-posta göndermek ile ilgili bir fonksiyon da bulunmakta. Buna ek olarak bu dosya tema klasörümüzün içinde bulunacağından kullanıcılarımıza bu hata ile ilgili özlleştirilmiş bir bilgi de aktarabiliriz.
Çok fazla kafa ütülemeden koda geçiyorum. Bu dosyayı db-error.php
olarak kaydedin ve kök dizindeki wp-content
klasörü içerisine atın. Bu kodu isteğinize göre düzenleyebilirsiniz. Değiştirmeniz gereken yeri ışıklandırdım. Kendi e-postanızı bu alana yazmanız yeterli olacaktır.
db-error.php içeriği
<?php // Google gel bak anlaşalım bu geçici bir şey $protocol = $_SERVER["SERVER_PROTOCOL"]; if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol ) $protocol = 'HTTP/1.0'; header( "$protocol 503 Service Unavailable", true, 503 ); header( 'Content-Type: text/html; charset=utf-8' ); header( 'Retry-After: 600' ); // Değerleri alalım $temp = mysql_error(); $url = curPageURL(); // Sayfa linki nedir? function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } // Bilgilendir bakalım yöneticiyi mail( 'epostanız@siteadresiniz.com', 'Websitesinde SQL Hatası', 'Bu otomatikleştirilmiş mesajdır. Hata mesajı : '.$temp.'. Hatanın alındığı sayfa linki : '.$url); ?> <html> <head> <title>Ups bir hata olmuş olmalı</title> <style> body { background: #FFFFFF ;font: 16px verdana, serif; line-height: 1.3; margin:0; padding:0; } #wrapper { height: 225px; margin: 80px auto 0; width:575px; } h1 { font-size: 34px; font-weight: normal; margin-top: 0; } p { margin: 0 0 10px 5px; } </style> </head> <body> <div id="wrapper"> <h1>Ufak bir çalışma var sanırım</h1> <p>Sitede sanırım ufak bir hata var. Site sahibine haber verdik. Birkaç dakika içinde tekrar denersen seviniriz.</p> </div> </body> </html>
Bu dosyayı oluşturduktan sonra wp-content
klasörü içerisine atın.
Bundan sonra her veritabanı hatası oluştuğunda size bununla ilgili bir e-posta düşecek ve kullanıcılarınıza düzgün bir sayfa aktarmış olacaksınız.
Selametle
Not: tema klasörüne atın gibi yanlış bir cümle kurmuşum. Aslı wp-content klasörü olacaktı. Düzeltmeyi yaptım. Bu hatadan Dolayı Özür dilerim.