Headless veya Başsız WordPress, WordPress’in benzersiz içerik yönetimini JavaScript ön uç arayüzlerinin gücü ve esnekliğiyle birleştiren web uygulamaları oluşturmanın yeni ve giderek daha popüler bir yoludur. WordPress yaratıcısı Matt Mullenweg dahil birçok geliştirici, headless wordpress’i web uygulaması geliştirmenin geleceği olarak görüyor. 

Başsız WordPress’in ne olduğuna, başsız bir içerik yönetim sisteminin nasıl kullanılacağına ve neden isteyeceğinize daha yakından bakacağız. Ama önce, geleneksel bir WordPress sitesinin nasıl çalıştığından ve başsız WordPress’in ne kadar farklı olduğundan bahsedelim.

Headless WordPress

Bir WordPress sitesine bir sayfa yüklediğinizde, sunucu bir HTML belgesi oluşturan kodu çalıştırır. Bu belge daha sonra tarayıcınıza gönderilir. Bu nedenle, aynı şekilde çalışan WordPress ve web uygulamalarına sunucu tarafı uygulamaları denir.

Başsız WordPress, bazen ayrıştırılmış veya istemci tarafı geliştirme olarak adlandırılan web uygulamaları oluşturmanın farklı bir yoludur. Adından da tahmin edebileceğiniz gibi, uygulamanın arayüzü istemcide oluşturulur ve yönetilir — genellikle bir tarayıcıdır, sunucuda değil. Daha doğrusu, tarayıcıda çalışan bir JavaScript uygulaması, WordPress’ten alınan içerikle arayüzü oluşturur.

WordPress’in PHP tabanlı ön uç arayüzü, biraz dehşet verici bir metaforla atlanır ve gövdeyi (CMS’nin kendisi) harici bir uygulama tarafından uzaktan kontrol edilen sunucuda bırakır.

Başsız CMS Nasıl Çalışır?

İstemci tarafı web uygulaması ve sunucu tarafı içerik yönetim sistemi, birbirleriyle iletişim kurmanın bir yoluna ihtiyaç duyar. Bu, uygulama geliştirmeye bu yaklaşımı veren API’nin rolüdür, başka bir ad: API odaklı geliştirme.

Bir API, iki yazılım parçasının birbiriyle konuşmasının standart bir yolu olan Uygulama Programlama Arayüzüdür. Bir uygulamanın bilgi istemesi veya başka bir yazılıma ne yapması gerektiğini söylemesi gerektiğinde, bir API aracılığıyla iletişim kurar.

WordPress, yazılımın uç noktalar adı verilen HTTP web adreslerini kullanarak internet üzerinden onunla konuşmasına izin veren bir tür web tabanlı API olan bir REST API’ye sahiptir. Uç noktalar, her gün web sitelerini ziyaret etmek için kullandığımız web adreslerine benzer ve çeşitli türlerdeki istekleri kabul ederler: bilgi almak için GET istekleri, bilgi göndermek için POST istekleri vb.

Örneğin, WordPress’in aşağıdaki gibi görünen bir “gönderi” uç noktası vardır:

https://example.com/wp-json/wp/v2/posts

Yazılım, bir WordPress sitesinin “gönderileri” uç noktasına bir GET isteği gönderdiğinde, gönderilerin ve ilgili bilgilerin bir listesini döndürür. İstek bir posta kimliği içeriyorsa, belirtilen gönderinin içeriğini döndürür. Bu uç noktayı, CMS’ye başlık ve gövde metni gibi bilgilerle bir HTTP POST isteği göndererek yeni bir blog oluşturmasını söylemek için de kullanabiliriz.

API, herhangi bir uyumlu yazılımın, birleşik bir istemci-sunucu sisteminin başsız arka ucu olarak hareket ederek WordPress ile iletişim kurmasına izin verir. Ortaklığı tamamlamak için, tarayıcıda çalışan istemci tarafı uygulaması olan bir ön uca da ihtiyacımız var. Bu uygulamalara genellikle Aşamalı Web Uygulamaları veya PWA denir ve bir sonraki bölümde nasıl çalıştıklarına bakacağız.

Progresif Web Uygulaması nedir?

WordPress ilk olarak 2003 yılında piyasaya sürüldü. O zamanlar, tarayıcılar karmaşık etkileşimli uygulamaları çalıştıramadığından uygulamalar sunucuda yaşamak zorundaydı. Web tarayıcılarında yerel olarak çalışan tek programlama dili olan JavaScript, PHP gibi sunucu tarafı dillerinden çok daha az yetenekliydi.

Zamanla tarayıcılar, web ve JavaScript gelişti. Bugün JavaScript, diğer programlama dilleri kadar yeteneklidir ve tarayıcılar, web geliştiricilerinin Google Dokümanlar gibi zengin uygulamalar oluşturmak için kullandıkları gelişmiş özelliklerle doludur.

Progresif Web Uygulamaları: Google tarafından icat edilen bir terim, yerel uygulama benzeri bir deneyim sağlayan JavaScript uygulamalarıdır.

Sunucu tarafındaki uygulamaların aksine, PWA’lar şunları yapabilir:

  • Web Uygulama Manifestoları sayesinde mobil cihaz ana ekranlarına yüklenecek .
  • Kullanıcının cihazı çevrimdışıyken çalışarak sitenize metroda veya uçakta göz atabilir; bu , uygulamanın ağ ile nasıl etkileşimde bulunduğunu kontrol eden , önbelleğe alma ve servis çalışanları tarafından etkinleştirilen bir özelliktir .
  • Yeni içeriği sorunsuz bir şekilde yükleyin ve tüm sayfayı yeniden yüklemeden arayüzü değiştirin.
  • Mobil ve masaüstü cihazlara anlık bildirimler gönderin.

İyi tasarlanmış bir PWA, bir sunucu tarafı uygulamasından daha hızlıdır çünkü kodu indirildikten sonra API’den verileri önceden yükleyebilir ve her etkileşime gecikme ekleyen ağ istekleri yapmadan sayfayı değiştirebilir.

Neden Başsız WordPress ile PWA Kullanmalı?

WordPress mükemmel bir CMS’dir. Zamanın testinden geçti, sadık bir takipçi kitlesi ve benzersiz bir eklenti ekosistemi geliştirerek, onu şimdiye kadar oluşturulmuş en esnek ve özellik açısından zengin içerik yönetimi platformlarından biri haline getirdi. Ancak geleneksel sunucu tarafı modeli potansiyelini sınırlar.

  • Temalar, WordPress’te yerleşik çerçeve kullanılarak PHP’de yazılmalıdır.
  • Her sayfa yüklemesi veya arabirim değişikliği, kullanıcı deneyimini azaltan gecikme ve sinir bozucu gecikmeler ekleyerek ağda bir gidiş dönüş gerektirir.
  • WordPress, yerel bir uygulama deneyimi sunmak için yeni web ve tarayıcı teknolojilerinden yararlanamaz.

WordPress’in geliştiricileri, bu sınırlamaların farkında oldukları ve WordPress kullanıcılarının modern web’den tam olarak yararlanmak için WordPress’in sağlam içerik yönetimi ve yayınlama özelliklerinden vazgeçmeden kullanabilecekleri bir seçenek istedikleri için REST API’yi ekledi. Birçok işletme için Progresif Web Uygulaması, yerel bir mobil uygulamaya mükemmel bir alternatiftir. PWA’lar daha ucuzdur ve geliştirmesi daha kolaydır ve web, iOS ve Android platformları için yalnızca tek bir kod tabanını yönetmeniz gerekir. Bununla birlikte, PWA’ların yerel uygulamalara kıyasla bazı sınırlamaları vardır: sensörler gibi cihaz üzerinde donanım kullanmanız gerekiyorsa, yerel kod tek seçeneğinizdir.

WordPress’i PWA’ya Nasıl Dönüştürürüm?

Bir WordPress siteniz var, kafasızsınız ve PWA’lar inanılmaz geliyor. Ancak önemli bir bileşeni kaçırıyorsunuz: WordPress’in dilini konuşan bir Progresif Web Uygulamasına ihtiyacınız var. Ve bir sorun var: Başsız WordPress ile bir PWA kullanmak, yeni bir tema kurmaktan daha karmaşıktır. Ancak bir PWA ile dalmaya karar verdiğinizde, hedefinize ulaşmanın birkaç yolu vardır.

Bir PWA WordPress Eklentisi Kurun

PWA eklentileri, mevcut sitenizi progresif bir web uygulamasına dönüştürür. Çevrimdışı işlevsellik, ana ekran kurulumu ve akışkan arayüzler gibi faydaları WordPress sitenize getirmenin en basit yoludur. Ancak eklentiler, tartışacağımız diğer seçeneklerden daha az kontrol ve özelleştirme sağlar.

PWA ve Süper Aşamalı Web Uygulamaları dahil, aralarından seçim yapabileceğiniz birkaç PWA eklentisi vardır .

Progresif Web Uygulaması Oluşturun

Daha önce tartıştığımız gibi, Progressive Web Apps, REST API aracılığıyla WordPress ile arayüz oluşturan bağımsız istemci tarafı uygulamalardır. Teorik olarak, düz JavaScript’te bir PWA geliştirebilirsiniz, ancak çoğu React, Angular veya Vue gibi bir web uygulama çerçevesi üzerine inşa edilmiştir.

Web çerçeveleri, geliştiricilerin yeniden kullanılabilir bileşenlerden duyarlı arabirimler oluşturmasına yardımcı olur. Hem React hem de Vue , geliştiricilerin hızlı bir şekilde çalışmaya başlayabilmeleri için araçlar sunar ve son derece popüler oldukları için WordPress siteniz için bir PWA oluşturacak birini bulmakta sorun yaşamazsınız.

Site Oluşturucu Kullanın

Gatsby , statik bir React tabanlı siteyi doldurmak için WordPress REST API’sinden içerik çekebilen bir site üreticisidir.

Bir kullanıcı bir sayfa istediğinde, geleneksel bir WordPress sitesi onu sıfırdan oluşturur, kodu çalıştırır ve veritabanı istekleri yapar, bunların hepsi zaman alır. Statik bir site oluşturucu, aksine, içeriği WordPress’ten alır ve sayfaları bir kez oluşturur. Herkese aynı HTML ve JavaScript’i sunar. Bu, statik siteleri inanılmaz derecede hızlı hale getirir.

Gatsby, ana ekran kurulumu için Manifest dosyaları ve çevrimdışı işlevsellik için Hizmet Çalışanları dahil olmak üzere PWA’lar oluşturabilir. WordPress’ten ve statik PWA uygulamanıza veri almayı kolaylaştıran bir WordPress kaynak eklentisi içerir.

Performans ve Esneklik

Başsız WordPress herkes için değildir ve birçok kullanıcı geleneksel bir sunucu tarafı WordPress sitesinden memnun. WordPress’in içerik yönetimi özelliklerini modern web teknolojilerinin performansı ve esnekliğiyle birleştirmek isteyen kullanıcılar için, Aşamalı Web Uygulaması ile başsız bir WordPress sitesi her iki dünyanın en iyisidir.