WordPress’in perde arkasında nasıl çalıştığını anlamak büyüleyici olabilir. Çoğu kullanıcı için basit görünüyor: bir URL yazın ve bir sayfa hızla yüklensin. Ancak, aslında arka planda çok şey oluyor.
Birkaç yıl önce WordPress ile çalışmaya ilk başladığımızda, her şeyin nasıl çalıştığına dair derinlemesine bir araştırma yaptık. Ve şimdi, WordPress hakkında daha fazla şey anlayabilmeniz için bu bilgileri basit terimlerle sizinle paylaşmak için buradayız.
Bu kılavuzda, WordPress’in iç işleyişinde size yol göstereceğiz. Ayrıca her şeyi daha açık hale getirmek için takip etmesi kolay bir infografik oluşturduk.
WordPress Nedir?
WordPress bir web sitesi oluşturucu ve içerik yönetim sistemidir. Herkesin her türlü web sitesini oluşturmak için kullanabileceği açık kaynaklı bir yazılımdır.
2003’te bir blog platformu olarak başladı, ancak kısa sürede bir CMS’ye ve daha sonra tam teşekküllü bir web sitesi oluşturma platformuna dönüştü. Bugün, internetteki tüm web sitelerinin %43’ünden fazlasına güç sağlamaktadır.
WordPress ‘in gelişimi, tarihçesi, artıları ve eksileri hakkında daha fazla bilgi edinmek için WordPress’in ne olduğu ve bir WordPress sitesi oluşturmanın maliyeti hakkındaki kapsamlı kılavuzumuza bakın.
Neden WordPress’in Nasıl Çalıştığını Öğrenmelisiniz?
WordPress açık kaynaklı bir yazılımdır, yani herkes kodunu inceleyebilir ve bunun için kendi uygulamalarını (eklentiler) ve şablonlarını (temalar) yazabilir.
Yıllar boyunca, WordPress’in bir yazılım olarak nasıl çalıştığını öğrenerek hızla ileri düzey kullanıcı haline gelen sayısız yeni başlayan gördük.
Ayrıca WordPress performansını artırmayı ve projeleriniz için daha iyi kod yazmayı da öğretecek.
Bu kılavuz size tüm süreç boyunca adım adım yol gösterecektir. Bir kullanıcı bir sayfa talep ettiğinde başlayacağız ve bu sayfa tamamen yüklendiğinde sona ereceğiz.
Hazır mısınız? Hadi başlayalım.
Daha fazla ayrıntı için aşağıdaki yazılı eğitimimizi de takip edebilirsiniz.
1. wp-config.php Dosyasını Yükle
wp-config.php WordPress yapılandırma dosyasıdır. Bir WordPress sitesi için global değişkenleri ayarlar ve WordPress veritabanı bilgilerinizi içerir. Açık nedenlerden dolayı, WordPress’in yüklediği ilk dosya budur.
wp-config.php dosyası ve nasıl düzenleneceği hakkında daha fazla bilgi edinin.
2. Varsayılan Sabitleri Ayarlama
wp-config.php dosyası yüklendikten sonra, WordPress varsayılan sabitleri ayarlamaya geçecektir.
Bu, varsayılan WordPress yükleme konumu, maksimum dosya boyutları ve wp-config.php dosyasında ayarlanan diğer varsayılan sabitler gibi bilgileri içerir.
3. advanced-cache.php Dosyasını Yükle
Sitenizde bir advanced-cache.php dosyası varsa, WordPress daha sonra bunu yükleyecektir.
Bu dosya bir drop-in dosyası olarak işlev görür ve başta WordPress önbellek eklentileri olmak üzere birçok popüler eklenti tarafından kullanılır. Siteniz bu dosyayı kullanıyorsa, Eklentiler ekranında ‘Drop-ins’ adında yeni bir öğe göreceksiniz.
4. wp-content/db.php Dosyasını Yükle
WordPress, geliştiricilerin kendi veritabanı soyutlama katmanlarını oluşturmalarına ve bunları wp-content klasörünün içine yerleştirilmiş bir db.php dosyasına yüklemelerine olanak tanır. WordPress önbellekleme eklentileri genellikle veritabanı performansını artırmak için kullanır.
Web sitenizde bu dosya mevcutsa, WordPress dosyayı yükleyecektir.
5. MySQL’e Bağlanın ve Veritabanını Seçin
WordPress artık ilerlemek için yeterli bilgiye sahiptir. MySQL sunucusuna bağlanacak ve veritabanını seçecektir.
WordPress veritabanına bağlanamazsa, “Error establishing database connection” hatasını göreceksiniz ve WordPress tam burada çıkacaktır.
Her şey yolunda giderse, sonraki adımlara geçecektir.
6. object-cache.php veya wp-includes/cache.php dosyasını yükleyin
WordPress şimdi object-cache.php dosyasını arayacaktır. Eğer böyle bir dosya yoksa, WordPress wp-includes/cache.php dosyasını yüklemeye devam edecektir.
7. wp-content/sunrise.php Dosyasını Yükleyin
Çok siteli bir ağ ise, WordPress wp-content klasöründe varsa sunrise.php dosyasını arayacaktır.
8. Yerelleştirme Kitaplığını Yükle
WordPress şimdi wp-includes klasöründeki l10n.php kütüphanesini yükleyecektir. Bu dosya WordPress yerelleştirme sistemini yükler, çevirileri yükler, yerelleri ayarlar vb.
WordPress’in diğer dillerde nasıl kullanılacağına ilişkin kılavuzumuza göz atabilirsiniz.
9. Çoklu Site Eklentilerini Yükle
Çoklu site ağı ise WordPress çoklu site eklentilerini yükleyecektir. WordPress çoklu site ağlarında eklentilerin nasıl çalıştığı hakkında daha fazla bilgi edinin.
10. Eylem ‘muplugins_loaded’ yapın
muplugins_loaded eylemi artık WordPress tarafından çalıştırılıyor. Bu eylem yalnızca bir WordPress çoklu sitesinde ağ tarafından etkinleştirilen eklentiler için kullanılabilir.
11. Aktif Eklentileri Yükle
WordPress şimdi sitedeki tüm etkin eklentileri yükleyecektir. Bunu, WordPress veritabanınızın seçenekler tablosundaki active_plugins girişine bakarak yapar. Bu, WordPress’in sitenizde yüklü olan ancak etkinleştirilmemiş eklentileri göz ardı etmesini sağlar.
12. Pluggable.php Dosyasını Yükle
Pluggable.php dosyası, WordPress eklentileri tarafından yeniden tanımlanabilen işlevler içerir.
WordPress şimdi başka bir eklentinin bu dosya içindeki işlevleri zaten tanımlayıp tanımlamadığına bakacaktır. Aksi takdirde, bu işlevleri kendisi tanımlayacaktır.
13. Eylem ‘plugins_loaded’ yapın
WordPress şimdi ‘plugins_loaded’ eylemini çalıştıracaktır.
Geliştiricilerin işlevlerini tüm etkin eklentiler yüklendikten sonra çalışacak şekilde bağlamalarına olanak tanır.
14. Yeniden Yazma Kurallarını Yükle
WordPress şimdi yeniden yazma kurallarını yükleyecektir. Bu yeniden yazma kuralları WordPress’in SEO dostu URL’ler kullanmasına yardımcı olur.
15. Instantiate $wp_query, $wp_rewrite, $wp
Bu noktada, WordPress aşağıdaki nesneleri yükler:
$wp_query: WP_Query sınıfını tutan global örnek. WordPress’e tipik bir WordPress sorgu biçiminde hangi içeriğin istendiğini söyler.
$wp_rewrite: WP_Rewrite sınıfınızı tutan global örnek. WordPress’e istenen içeriği görüntülemek için hangi URL’yi kullanacağını söyleyen yeniden yazma kurallarınızı ve işlevlerinizi içerir.
$wp: WP sınıfının global örneği, isteğinizi ayrıştıracak ve ana sorguyu gerçekleştirecek işlevleri içerir.
16. Eylem ‘setup_theme’ yapın
WordPress şimdi ‘setup_theme’ eylemini çalıştırmak için harekete geçecektir. Bu eylem WordPress temanız yüklenmeden önce çalışır.
17. Alt Temanın functions.php Dosyasını Yükleyin
functions.php dosyası bir eklenti görevi görür ve WordPress temalarında web sitenize temaya özgü özellikler eklemek için kullanılır. Eğer bir alt tema kullanıyorsanız, WordPress şimdi alt temanızın functions.php dosyasını yükleyecektir.
Aksi takdirde, devam edecek ve mevcut aktif temanızın functions.php dosyasını yükleyecektir.
18. Ana Temanın functions.php Dosyasını Yükleyin
Eğer bir alt tema kullanıyorsanız, WordPress şimdi ana temanızın functions.php dosyasını yükleyecektir.
19. Eylem ‘after_setup_theme’ yapın
Bu eylem, WordPress temayı kurduktan ve tema işlevlerini yükledikten sonra çalışır. Temalar için kullanılabilen ilk eylemdir.
20. Geçerli Kullanıcı Nesnesini Ayarla
Bu noktada, WordPress geçerli kullanıcı nesnesini yükler. WordPress’in kullanıcının rolüne ve yeteneklerine uygun olarak isteği yönetmesini sağlar.
21. Eylem ‘init’ yapın
WordPress şu ana kadar ihtiyaç duyduğu tüm önemli bilgileri yükledi. Şimdi, ‘init’ eylemini ateşler. Bu eylem ayrıca çekirdekte bulunan veya o web sitesinde yüklü olan herhangi bir eklenti tarafından sağlanan blokları da kaydeder.
Bu eylem, geliştiricilerin WordPress önceden belirtilen tüm bilgileri yükledikten sonra yürütülmesi gereken kodu eklemelerine olanak tanır.
22. Eylem ‘widget_init’ yapın
Widget_init
eylemi, geliştiricilerin widget
‘ları kaydetmelerine ve bu sırada çalıştırmaları gereken kodu çalıştırmalarına olanak tanır.
23. wp() işlevini çalıştırın
WordPress şimdi wp-includes/functions.php
dosyasında bulunan wp ()
işlevini çağırır. WordPress sorgu globalleri $wp, $wp_query, $wp_the_query’yi ayarlar ve ardından $wp->main’i çağırır.
24. Ayrıştırma İsteği
Artık WordPress, kullanıcı isteğini ayrıştırmak için ihtiyaç duyduğu tüm bilgilere sahiptir. Kullanıcının isteğiyle eşleşmesi için yeniden yazma kurallarını kontrol ederek başlar.
Ardından sorgu değişkeni filtrelerini çalıştırır, bir eylem kancası ister ve bir başlık isteği gönderir.
25. Sorgu Çalıştır
Sorguyla eşleşen bir içerik yoksa WordPress is_404 değişkenini ayarlayacaktır.
Aksi takdirde, WordPress sorgu değişkenlerini yüklemeye devam edecektir.
Daha sonra WP_Query->get_posts() işlevini çalıştıracaktır.
Ardından, WP_Query nesnesi ile DO_ACTION_REF_ARRAY ‘pre_get_posts’ eylemini ateşler.
WordPress şimdi sorguyu temizlemek ve bazı son kontrolleri yapmak için apply_filters’ı çalıştıracaktır.
Şimdi, veritabanından gönderileri alır ve posts_results ve the_posts filtrelerini uygular.
Sorgu kısmı WordPress’in gönderileri döndürmesiyle sona erer.
26. Eylem ‘template_redirect’ yapın
WordPress şimdi template_redirect
eylemini çalıştıracaktır. Bu kanca, WordPress hangi şablon sayfasının yükleneceğini belirlemeden hemen önce çalışır.
27. Besleme Şablonunu Yükle
İstenen içerik bir RSS beslemesiyse WordPress besleme şablonunu yükler.
28. Yük Şablonu
WordPress şimdi WordPress şablon hiyerarşisine göre şablon dosyasını arayacaktır. Daha sonra genellikle bir WordPress döngüsü içeren şablonu yükler.
29. Eylem ‘kapatma’ yap
Tüm PHP yürütmesini sonlandırmadan hemen önce, WordPress shutdown adı verilen son eylemi gerçekleştirir.
WordPress burada çalışmayı durdurur. Kodu çalıştırdı ve kullanıcının istediği web sayfasını oluşturdu.
Şimdi, web barındırma sunucunuz bir kullanıcının isteğine WordPress tarafından oluşturulan web sayfasını göndererek yanıt verir.
Bu sayfa, kullanıcının tarayıcısına ekranda nasıl görüntüleneceğini söyleyen HTML, CSS ve Javascript kodu içerir.
İnanılmaz, değil mi? Tüm bunlar milisaniyeler içinde gerçekleşiyor. Bu en iyi WordPress barındırma hizmetlerinden birini kullanıyorsanız, sayfanız ideal olarak birkaç saniye içinde yüklenecektir.
Umarız bu makale WordPress’in perde arkasında nasıl çalıştığını öğrenmenize yardımcı olmuştur. Ayrıca WordPress yönetici alanını korumaya yönelik ipuçlarımızı görmek veya kullanışlı WordPress ipuçları, püf noktaları ve hack‘leri içeren bu kılavuza göz atmak isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Jiří Vaněk
This is the first time I see such a comprehensive summary of everything that happens in the background before a page is generated. I must admit, I haven’t found such detailed information anywhere else. When I consider how many processes have to occur before a page loads and that WordPress and the server manage it all within a second, it’s fantastic what today’s servers and systems can do.
MJB
hm – I am kind of missing step 0
so is this a correct assumption`?
a URL comes in at my hosted webserver
requesting let’S say my home page
then the webserver fires up step (1) ?
which then runs until step (24)
where WP parses the incoming URL to figure out next steps?
WPBeginner Support
Step 0 can certainly be a URL linking to the site, around step 15 is where the specific page would be considered.
Yönetici
Mike Ross
What about index.php in the root?
I don’t get it…There are guides out there that lay out a totally different sequence of WordPress initialization.
WPBeginner Support
Index.php would be for the theme files, we cover the theme hierarchy in our guide below:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Yönetici
Mike Ross
No, I’m not talking about the theme’s homepage template. I’m taking about the index.php at the root, which is a part of the WordPress core. It triggers wp-blog-header.php, which then loads wp-load.php which sets up the entire WordPress environment.
WPBeginner Support
The index.php in the root folder tells WordPress to load your theme
Yönetici
Terry Woods
That is correct
Jason
Why start from wp-config.php ? I thought it was from index.php
WPBeginner Support
That would be for themes and not WordPress itself, for the index.php you would want to take a look at the template hierarchy in our guide below:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Yönetici
Petru Ciucur
This is THE Article. Thanks !
WPBeginner Support
Glad our guide was helpful
Yönetici
Juan Johnson
HI wpbeginner.
I noticed that in your sequence, you mentioned that wp does this and then that. Physical, where is the instance of wp()? On the server? Does this happens in between an initial load page post request when I use google browser and the final loading of the wp dashboard after login?
WPBeginner Support
You may want to take another look at the infographic for understanding the loading and how it works.
Yönetici
Juan Johnson
I am a programmer. I am getting more into the web page design, however, I cannot let go of wanting to know what is going on behind the scenes. You article has given me a foundation to start confidently constructing web pages.
WPBeginner Support
Glad our guide was helpful
Yönetici
Paul McDevitt
This is brilliant. Ran into several issues with old, expired plugins, updating PHP, etc, and a virus (probably because of the prior items.) So all locked down and scrubbed up now, but wanted to understand better the sequence of events as looking into any one PHP file is like trying to read a bowl of spaghetti, as I did not understand the sequencing of the activities. So absolutely amazing. Love this.
Thanks
WPBeginner Support
Glad our article was helpful
Yönetici
Naresh
very clear article.
WPBeginner Support
Thank you
Yönetici
Chinenye
I want to really know what wordpress does, how can I make and share posts through word press? What does it do for me apart from creating a site?
WPBeginner Support
WordPress allows you to create a site without needing to have knowledge of HTML and CSS. For sharing your posts, you would normally want to take a look at social media plugins: https://www.wpbeginner.com/plugins/best-social-media-plugins-for-wordpress/
Yönetici
ganesh
very interesting
Adrian
Interesting but not really a definition of how Wordpress works. This describes what it does, not how it does it. Would be useful to also know how it does things as well as what it does. For example how does it know which theme to load? Without the how all the above is very high level.
amir saleem
17. Load Child Theme’s functions.php File
The functions.php file acts as plugin and is used in WordPress themes to add theme specific features to your website. If you are using a child theme, then WordPress will now load your child theme’s functions.php file.
Otherwise, it will go on and load your current active theme’s functions.php file.
18. Load Parent Theme’s functions.php File
[ If you are using a child theme ], then WordPress will now load your parent theme’s functions.php file.
check the text in brackets and match all the wording here will be replace [ if you are using a parent theme ].
Thanks.
Caleb
Amir, I think what the OP is trying to say is that if there is a child theme, then obviously there would be a parent and child functions.php and wordpress first loads the child themes functions.php before loading the parent’s. Otherwise, it just loads the parent’s functions.php straightaway.
Altab Hossen
Thanks for this nice explanation and info-graphics is so cool !!
Kristian
And people wonder why WordPress sites are slow. It does all that at run-time for every single page view!
Johnpaul Onwueme
Thanks for the info graphics
deborah
still seems complicated to me, but all tech does
Jason
Would you be willing to offer this as a printed poster? I don’t know if it would generate much interest or make you any money, but since it is such a nice graphic it might make a nice office wall hanging.
anis
Thank you for this article . I wanted to know since long time
the different steps for loading .
What is a database abstraction layer and how to configure it ?