WordPress Dosya ve Dizin Yapısını Anlama
WordPress web sitenizle yalnızca gösterge tablosu aracılığıyla etkileşim kurmak tamamen mümkün olsa da, yüklemenizin nasıl yapılandırıldığını ve hangi dosyaların hangi işlevleri yerine getirdiğini anlamak, siteniz üzerinde daha yüksek düzeyde kontrol elde etmek için çok önemlidir. En azından bu anlayış, ortaya çıkabilecek hataları çok daha kolay bir şekilde gidermenizi sağlayacaktır.
Her WordPress kurulumu aynı dizin yapısı ve çekirdek dosyalarla başlar. Yüklediğiniz her eklenti veya tema, eklediğiniz her komut dosyası ve görünen her hata ekranı, CMS'nin omurgası sayesinde mümkündür. Bu dosyaları kurcalama fikri ilk başta korkutucu görünse de, göründüğünden çok daha basittir.
Bu makale boyunca, sitenize güç sağlayan çekirdek dosyalara özellikle dikkat ederek en önemli WordPress klasörlerinin içeriğini gözden geçireceğiz.
WordPress Dizin Yapısının Tanıtımı
WordPress dosya yapısı, daha yüksek seviyelerde dürüstçe oldukça basittir. Üç anahtar klasörünün bulunduğu public_html klasörünüz ve ayrıca wp-config.php ve .htaccess gibi birçok önemli dosyanız var . WordPress kurulumunuzun arkasını ilk kez kurcalıyor olsanız bile, bu isimlere zaten aşina olmanız ihtimali vardır.
Bu dosya ve klasörlere erişmek için barındırma hizmetinizin cPanel dosya yöneticisini veya bir Dosya Aktarım Protokolü (FTP) istemcisini kullanmanız gerekir. Bu kılavuzun amaçları doğrultusunda FileZilla'yı kullanacağız. Seçiminiz ne olursa olsun, public_html klasörünüzün içi şöyle görünmelidir:

Bu üç üst düzey klasöre geçmeden önce, public_html içindeki bazı dosyalara bir göz atalım. Her şeyden önce, elimizde .htaccess ("hypertext access"in kısaltması) var. Bu, WordPress kurulumunuz boyunca kalıcı bağlantı yapısını, dosyaları, klasörleri ve bunlara erişimi kontrol etmenizi sağlar. Bozulmamış bir .htaccess dosyası aşağıdaki gibi görünmelidir:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Ardından, bir front-page.php veya bir home.php dosyası tarafından değiştirilmedikçe, varsayılan olarak ana sayfanız olarak döndürülecek olan index.php'ye sahibiz :

Bu dizindeki bir diğer önemli dosya ise wp-config.php'dir. Bu, WordPress'in temel yapılandırmasını yönetir ve MySQL ayarlarınızı, gizli anahtarlarınızı ve veritabanı tablosu önekinizi içerir. Veritabanı ayarlarınız şöyle görünmelidir:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'notarealname');
/** MySQL database username */
define('DB_USER', 'notarealuser');
/** MySQL database password */
define('DB_PASSWORD', 'notarealpassword');
/** MySQL hostname */
define('DB_HOST', 'localhost');
Bu dizindeki diğer önemli dosyalar arasında, birlikte kayıt, oturum açma ve kullanıcı onay sürecini yöneten wp-activate.php , wp-signup.php ve wp-signup.php yer alır . Ayrıca wp-comments-post.php (yorum yapma işlevini yerine getirir ve yorumların tekrarlanmasını önler) ve bazı yaygın WordPress değişkenlerini ayarlayan wp-settings.php dosyasına sahibiz.
Bunları ele aldıktan sonra, en üst düzey klasörlerin ilkine geçelim, wp-admin.
wp-admin Klasörü

Adından da anlaşılacağı gibi, bu, bir WordPress kullanıcısı olarak yönetici araçlarınızı çalıştıran dosyaları barındıran klasördür. Örneğin, admin.php (klasörün kalbinde yer alır), veritabanına bağlantı sağlar, WordPress panosunu görüntüler ve herhangi bir kullanıcının gerçekte yönetici olup olmadığını kontrol etmek gibi diğer herhangi bir sayıda önemli işlevi gerçekleştirir. soru. Eğer öyleyse , komut dosyası wp-load.php dosyasını çağırmaya devam eder ve bu da wp-config.php dosyasını yükler:
/**
* In WordPress Administration Screens
*
* @since 2.3.2
*/
if ( ! defined( 'WP_ADMIN' ) ) {
define( 'WP_ADMIN', true );
}
if ( ! defined('WP_NETWORK_ADMIN') )
define('WP_NETWORK_ADMIN', false);
if ( ! defined('WP_USER_ADMIN') )
define('WP_USER_ADMIN', false);
if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
define('WP_BLOG_ADMIN', true);
}
if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') )
define('WP_LOAD_IMPORTERS', true);
require_once(dirname(dirname(__FILE__)) . '/wp-load.php');
Bu klasördeki dosyaların adlarına dikkat ederseniz, çoğunun WordPress panosunda bildiğiniz işlevlere karşılık geldiğini göreceksiniz. Örneğin, profile.php , kullanıcı profili yönetim ekranına güç sağlarken, theme-install.php , tema kurulum panelini kontrol eder ve plugin-install.php , eklentiler paneli için aynı şeyi yapar.
wp-admin içindeki diğer önemli klasörlere gelince , resimler WordPress yönetim panelinde kullanılan resimlerle doldurulur, css ve js sırasıyla CSS koduna ve JavaScript komut dosyalarına ayrılmıştır ve ağ , WordPress çoklu sitesini güçlendirmek için gerekli PHP dosyalarını barındırır.
wp-içerik Klasörü
Bu, WordPress ile ilişkiniz sırasında zamanınızın çoğunu geçireceğiniz arka ucun bölümüdür. En popüler iki işlevi içeride bulunur – elbette temalar ve eklentilerden bahsediyoruz:


Eklentiler Klasörü

WordPress'e yüklediğiniz her eklenti, yukarıdaki örnekte görüldüğü gibi, eklentiler klasörü içinde kendi alt klasörüne sahip olacaktır. Bunların her birinin içeriği eklentiden eklentiye değişir. Örneğin, Akismet eklentisinin klasörünün içine hızlı bir bakış:

WordPress'te 403 Yasak Hatasını Alma, Nasıl Düzeltilir ve WordPress Web Sitenizde 500 Dahili Sunucu Hatası Nasıl Düzeltilir gibi birden fazla sorun giderme makalesinde bahsettiğimiz gibi, eklentileri FTP aracılığıyla devre dışı bırakmak uyumluluğu çözmek için gerekli bir adım olabilir. sorunlar.
Temalar Klasörü

Eklentilerde olduğu gibi, WordPress sitenize yüklediğiniz her tema, FTP kullanmak yerine pano üzerinden her temayı yüklemediyseniz, muhtemelen zaten görmüş olduğunuz kendi ilgili klasörünü arka uçta alır.
Herhangi bir temanın klasörüne eriştiğinizde göreceğiniz ilk şey, birlikte onun yapı taşlarını oluşturan bir grup PHP dosyasıdır. Örnek olarak Divi kullanarak, ana klasörde birçok diğerleri arasında idebar.php gibi bir 404.php bir functions.php, ve style.css dosyasını bulacaksınız. Divi ayrıca çoğu temada hemen hemen standart olan css , images ve js için ayrı klasörler içerir. Bununla birlikte, epanel ve et-pagebuilder gibi diğer birkaç klasör temaya oldukça açık bir şekilde benzersizdir – daha önce Divi ile kurcalama şansınız olduysa adlarını tanıyacaksınız:

wp Klasörü içerir

WordPress dizinindeki son üst düzey klasör wp-includes ve büyük bir klasör. wp-admin'in söz konusu yönetici işlevlerini güçlendirmek için gerekli tüm dosyaları içerdiği ve wp-content'in tüm temalarınızı ve eklentilerinizi depoladığı yerde, wp-includes , sitenizin geri kalanının saat gibi çalışmasını sağlayan şeydir.
Bu klasör aslında o kadar önemlidir ki WordPress çekirdek dosyalarının çoğunun depolandığı yerdir. Yeni bir WordPress kurulumu, ana dizinde 140'tan fazla farklı dosya ve sertifikalar, yazı tipleri , js , tema-uyumluluk ve widget'lar dahil olmak üzere 14 farklı klasör (bu yazının yazıldığı sırada) içerecektir.
Ancak bu alt klasörler, function.php gibi ana klasörde bulunan dosyalar kadar önemli değildir. Bu küçük dosya, WordPress'in çekirdeğinin bir parçası olarak kabul edilir ve WordPress kurulumunuzun çalışmasını sağlayan birçok küçük işlevle doludur. Örnek olarak, bu kod satırları, dosyayı bir metin düzenleyicide açarsanız ilk göreceğiniz şeylerdir ve bunlar yalnızca tarihleri farklı biçimlere dönüştürmek için kullanılan normal bir işlevdir:
/**
* Convert given date string into a different format.
*
* $format should be either a PHP date format string, e.g. 'U' for a Unix
* timestamp, or 'G' for a Unix timestamp assuming that $date is GMT.
*
* If $translate is true then the given date and format string will
* be passed to date_i18n() for translation.
*
* @since 0.71
*
* @param string $format Format of the date to return.
* @param string $date Date string to convert.
* @param bool $translate Whether the return date should be translated. Default true.
* @return string|int|bool Formatted date string or Unix timestamp. False if $date is empty.
*/
function mysql2date( $format, $date, $translate = true ) {
if ( empty( $date ) )
return false;
if ( 'G' == $format )
return strtotime( $date . ' +0000' );
$i = strtotime( $date );
if ( 'U' == $format )
return $i;
if ( $translate )
return date_i18n( $format, $i );
else
return date( $format, $i );
}
Diğer anahtar dosyalar arasında cache.php (önbellekten veri ekleme ve çıkarma ile önbellekten veri ekleme ve çıkarma işlemlerini yürütür), links.php (WordPress'in bağlantı özelliğini destekleyen işlevleri içerir) ve version.php ( hangi WordPress sürümünüzü belirtir).
Çözüm
WordPress kurulumunuzun arka ucunu araştırmak, biraz pratik ve biraz kurcalama ile anlaşılır bir şekilde korkutucu olsa da, yakında dizinlerinin ve çekirdek dosyalarının içini ve dışını ezbere öğreneceksiniz. Bu bilgi, gelecekte bir hatayı gidermeniz, basit bir ince ayar yapmanız veya akşam yemeği misafirlerinizi WordPress trivia hakkındaki ansiklopedik bilginizle şaşırtmanız gerekip gerekmediğini (ve bu uygulamalardan sadece biri doğru değil!) ).
Ancak her yolculuk birkaç kısa adımla başlar ve sizin durumunuzda bunlar:
- WordPress dizin yapısını, özellikle wp-admin , wp-content ve wp-includes klasörlerini tanıyın .
- wp-config.php , functions.php ve .htaccess dahil olmak üzere WordPress çekirdek dosyalarını öğrenin .
Hiç farkında olmadan arka ucunu kurcalayarak WordPress kurulumunuzu bozdunuz mu? Endişelenme, hepimiz oradaydık. Abone olun ve deneyimlerinizi aşağıdaki yorumlar bölümünde bizimle paylaşın!
Rashad Ashurov'un makale küçük resmi / Shutterstock.com
ev borcu WordPress sitesi