Kısa Kodların Dile Getirilmeyen Sorunu

The-Unspoken-Problem-of-Shortcodes

Kısa kodlar (shortcodes), WordPress’in en önemli yapı taşlarından biridir. Geliştiriciler ile site oluşturucuları arasında bir köprü kurarak insanların neredeyse diledikleri her yere kapsamlı içerik parçaları yerleştirmelerine olanak tanırlar. Eklenti geliştiricileri, kullanıcılarının içeriklerini nasıl ve nerede görüntüleyecekleri konusunda daha fazla esneklik sağladığı için kısa kodları çok sever.

Kısa kodların ne olduğunu ve nasıl göründüğünü bilmiyorsanız, bunlar köşeli parantezler içine alınmış o arkaik, kod benzeri metinlerdir. Şuna benzer bir görünümleri vardır:

Bu özel olanı embed (gömme) kısa kodu olarak adlandırılır ve varsayılan olarak WordPress’te yerleşiktir. Bu kısa kod, belirtilen URL’deki videoyu içeriğinize gömer. Denemek isterseniz yukarıdaki kısa kodu sitenize kopyalayıp yapıştırmanız yeterlidir.

Perde arkasında gerçekleşen şey, WordPress içeriğinizde bir kısa kodla karşılaştığında bunun işlenip başka bir şeye dönüştürülmesidir. Yukarıdaki örneğimizde, ne zaman bir

kısa kodu algılansa, WordPress kısa kodun içindeki URL’yi alır ve sahip olduğu bir dizi içerik sağlayıcısıyla karşılaştırır. Eşleşen bir sağlayıcı bulduğunda, uygun iframe gömme kodunu alır ve bunun yerine onu görüntüler.

Peki buradaki sorun nedir? Kulağa oldukça basit geliyor; sadece köşeli parantezli kısa bir metin giriyorsunuz ve işiniz bitiyor.

Kısa Kod API’si (Shortcode API) devreye giriyor..

Kısa Kodlar Bolluğu

Kısa Kod API’si, kısa kod oluşturma imkanını geliştiricilere sunar. Bu sayede geliştiriciler, eklentilerine kendi özel kısa kodlarını ekleyebilirler.

Bu harika bir şey; artık yalnızca kod benzeri kısa bir metin parçasıyla (adı bu yüzden “kısa kod”dur), hem yeni başlayanlar hem de ileri düzey kullanıcılar neredeyse istedikleri her tür içeriği diledikleri yere koyabilirler.

WordPress varsayılan olarak yalnızca bir avuç kısa koda sahiptir. Sayıları çok az olduğu için bunları ezberden yazmak kolaydır. Ancak birkaç eklenti yüklediğinizde, kısa kodların sayısı hızla bir düzineye veya daha fazlasına, bazı durumlarda ise yüzden fazlasına fırlar. Her kısa kodun kendine ait özellikleri (nitelikleri) ve nasıl kullanılacağına dair yönergeleri vardır. Her eklentinin büyük olasılıkla tüm kısa kodlarının nasıl çalıştığını anlatan ve her birinde bulunan tüm parametreleri listeleyen bir tür belgelendirmesi bulunur. Ancak tüm kısa kodları ve özelliklerini ezberlemeye çalışırsanız kafayı yersiniz.

Sorun şu ki, sitenizdeki tüm mevcut kısa kodları ve bunların nasıl kullanılacağını öğrenebileceğiniz merkezi bir alan bulunmuyor.

Bazıları Sorunu Çözmeye Çalışıyor

Bazı eklentiler, tüm kendi kısa kodlarını kolay erişilebilir bir açılır menüde sunarak bu sorunu çözmeye çalışır. Ardından birine tıklamak, o kısa kodun olası tüm nitelikleriyle birlikte ekrana yazdırılmasını sağlar. Artık ezberleme ihtiyacı kalmaz, ki bu iyi bir şeydir.

Screen-Shot-2016-06-22-at-11.27.09-AM

Bazıları daha da ileri giderek kısa kodun niteliklerini doldurmak için onay kutuları ve renk seçiciler içeren bir ayarlar açılır penceresi formu ekler.

Screen-Shot-2016-06-22-at-11.28.54-AM

Bu çözüm bir nebze işe yarar. Ancak her eklenti yalnızca kendi kısa kodlarını listeler. Dolayısıyla, her eklenti kendi kısa kod seçici formunu oluşturursa, ekranınızda birden fazla kısa kod seçicinin bulunduğu durumlarla karşılaşmanız kaçınılmazdır (Bu daha önce benim başıma geldi).

Screen-Shot-2016-06-22-at-11.22.41-AM

Başka bir deyişle, her eklenti kendi bildiğini okur ve kendi kısa kodları için kendi çözümünü uygular. Bazı eklentiler “Ortam Ekle” düğmesinin yanına yeni bir düğme eklerken, bazıları da TinyMCE’nin içine yeni bir düğme yerleştirir.

Şimdi şöyle düşünüyor olabilirsiniz: “Neden diğer eklentilerin kısa kodlarını da toplayıp kendi açılır menünüze / kısa kod seçicinize dahil etmiyorsunuz?” İşte tam olarak ben de öyle düşündüm. Ancak bunu söylemesi yapmasından daha kolay. Nedenini birazdan açıklayacağım ama önce ideal bir çözümün nasıl görüneceğine bakalım.

İdeal Çözüm

Mükemmel plan; sitenizdeki tüm mevcut kısa kodları toplayan, ardından size bir liste sunan ve ayrıca tüm nitelikleri doldurmanıza yardımcı olan bir eklenti oluşturmak olurdu. Ve her yeni eklenti yüklediğinizde, yeni eklenen tüm bu kısa kodlar da size sunulurdu.

Tüm kısa kodlarınızın kolay erişim için yerleştirildiği merkezi bir yer hayal edin. Her kısa kod ne işe yaradığını ve hangi eklentiye ait olduğunu açıklar. Ardından her bir mevcut özellik için, her birinin bir etikete, bunlar için bir değer seçmenin uygun bir yoluna ve bir açıklamaya sahip olduğunu hayal edin. Karşınıza açılır menüler, renk seçiciler, radyo düğmeleri, açma/kapama anahtarları ve benzeri şeyler çıkardı.

Böyle bir şey, web sitesi ve içerik üreticileri olarak hayatımızı kolaylaştırırdı. Kullanmak istediğiniz bir kaydırıcı (slider) için oluşturulmuş bir kısa kodu kopyalamak uğruna farklı belgelere veya yönetim panelinizin farklı bölümlerine bakmak zorunda kalmazdınız.

İşin Püf Noktası (Zorluk)

Ne yazık ki, şu anda böyle bir şey yapmak oldukça zor. Bir kısa kodun tüm ayrıntılarını bilmenin kesin bir yolu yoktur. Tüm kısa kodların bir listesini alabilirsiniz, ancak yalnızca asıl etiketlerini/adlarını alabilirsiniz; bir nitelik listesi, ne yaptıkları ve dize, renk veya sayı gibi türleri hakkında ek ayrıntıları alamazsınız. Her nitelik için yaklaşık bir açıklama bile elde edemezsiniz.

Geliştiricilere bir not: Evet, shortcode_atts işlevi için yeni eklenmiş üçüncü bir bağımsız değişken var, ancak bu zorunlu bir bağımsız değişken değil. Dolayısıyla dünyadaki her eklenti geliştiricisi bunu uygulamadığı sürece, bir kısa kodun tüm niteliklerini belirlemenin kesin bir yoluna hâlâ sahip olamayacağız.

Kısa Kod API’si; kısa kod açıklamaları eklemek, nitelik türü dönüşümleri (type casting) veya nitelik açıklamaları için hiçbir olanak sunmaz. WordPress’in kendisi kısa kodlara erişim için merkezi bir alan eklemedikçe, bu olanağın oluşturulacağından da şüpheliyim.

Sonuç

Şu anda kısa kodları düzenleme görevi her geliştiricinin kendisine bırakılmış durumda. WordPress içinde merkezi bir yöntem geliştirilmediği sürece, yönetim panelinizde birden fazla “Kısa Kod Ekle” düğmesi görmeye devam etmeyi bekleyin. Böyle bir şeyin WordPress Çekirdeği’ne eklenip eklenmemesi gerektiği ise başlı başına ayrı ve büyük bir tartışma konusudur.

Bir Alternatif

Bu konuyu farklı şekilde ele alan sayfa oluşturucu (page builder) eklentileri mevcut. Kısa kodları programatik olarak algılamak yerine, kullanıcıların bir kısa kodun her ayrıntısını manuel olarak girebilecekleri kısa kod eşleyicilerine (shortcode mappers) sahipler. Bu yapıldıktan sonra, sayfa oluşturucu içinde kullanılabilir hale gelir. Bu işe yarıyor  olsa da, bunlar yalnızca kendi sitenizde kullanılabilir durumdadır.

Biz Page Builder Sandwich ekibi olarak, umarız bu kısa kod karmaşasını çözebilecek bir şey üzerinde çalışıyoruz. İlerlememizden haberdar olmak için aşağıdaki bültenimize abone olun.