Kategoriler
WordPress

WordPress wp-content hack

wp-content klasöründe var olmayan görseller için 404 sayfası yerine varsayılan bir resim göstermek.

Bu yazımda WordPress’in varsayılan tema, eklenti ve medya yükleme ve klasörü olan wp-content klasöründe var olmayan görseller için kullanıcıya 404 sayfası yerine varsayılan bir görsel gösterme yöntemini yazacağım.

WordPress’de wp-content klasöründe belki daha önce var olan ama artık olmayan görselleriniz(gif|jpe?g|png|bmp|svg|webp) olabilir, bunlar tema veya eklenti veya yüklemiş olduğunu görseller olabilir. Normal şartlarda olmayan bir görsel için istek geldiğinde standart 404 sayfası gösterilir ancak bu görseli sizin veya başka sitelerin sayfalarında kullanması durumunda görüntü çok hoş olmaz boş bir hata gösterilir. Özellikle sayfa sosyal medya sitelerinde paylaşılmışsa boş görünmesi yerine sizin seçtiğiniz varsayılan bir resminizin görünmesi gayet uygun olur.

Bu durumda wp-content klasöründe olmayan bir görsele istek geldiğinde aşağıdaki yöntemi kullanarak 404 html sayfası yerine yine status 404 veren varsayılan bir görsel/resim göstermek çok şık olur diye düşündüm ve bunu yaptım.

Öncelikle wp-content klasörümüzün içerisine aşağıdaki index.php dosyasını koymalıyız:

/wp-content/index.php dosya içeriği:

<?php
    $file = 'resimyok.jpg'; //bu varsayılan resminiz
    $type = 'image/jpeg';
    header("HTTP/1.0 404 Not Found"); //404 vermesi önemli
    header('Content-Type:'.$type);
    header('Content-Length: ' . filesize($file));
    readfile($file);
?>

r4esimyok.jpg dosyasını da wp-content klasörü içerisine koyun. İstediğiniz boyutta ve şekilde bir görsel koyabilirsiniz.

Şimdi sitenizin ana dizinindeki .htaccess dosyasına aşağıdakini eklemelisiniz:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /wp-content/
RewriteCond %{REQUEST_URI}^/wp-content/(.*)$ [NC]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}!-f
RewriteRule \.(gif|jpe?g|png|bmp|svg|webp) /wp-content/index.php [NC,L]
</IfModule>

Yukarıdaki htaccess kuralı eğer gerçek bir dosya yok ise /wp-content/index.php den oku çalıştır anlamına geliyor, ayrıca bu kural yalnızca /wp-content/ klasörü ve altındaki alt klasörler(uploads/plugins/themes) için geçerli.

Aslında hepsi bu kadar 🙂 Test etmek için https://wolkanca.com/wp-content/herhangiolmayanbir.jpg adresini deneyebilirsiniz.

Ayrıca hoşunuza gidebilir:

Kırık görselleri bulmak [jQuery]: jQuery ile bir sayfadaki kırık kullanılmayan görselleri kaldırmak veya yerine başka görseli göstermek.

WordPress konusunda daha fazla bilgi, detay ve yardım için bana Twitter’dan ulaşabilirsiniz hatta takip edebilirsiniz.