WordPress özel alanları (custom fields) nedir?
WordPress’te özel alanlar (custom fields), geliştiricilere veya web sitesi yöneticilerine makaleler, sayfalar veya herhangi bir özel makale türü için ek meta veriler saklamalarına olanak tanıyan yerleşik bir özelliktir. Temelde, bu veriler belirli bir veri yapısında saklanır ve web sitesinin işlevselliğini genişletmek amacıyla kullanılır. wp_postmeta Veritabanı tablosundaki bir dizi “anahtar-değer çifti”.
Her özel alan, benzersiz bir tanımlayıcı ile temsil edilir.meta_keyVe buna karşılık gelen bir…meta_valueBir ürün makalesine, örneğin, “Özellikler” adında bir bölüm ekleyebilirsiniz. product_price Belirtilen alanın değeri “99.99”dur. Bu, makalenin temel içeriğini değiştirmeden ürün fiyatları, yazar bilgileri, son kullanım tarihleri, coğrafi konumlar gibi her türlü özelleştirilmiş bilgiyi eklemek için yapılandırılmış bir yöntem sunar. Bu özellik, varsayılan düzenleyicinin yalnızca başlık ve ana içeriği işleyebilmesi sınırlamasını aşar ve karmaşık içerik modellerinin ve işlevsel genişlemelerin gerçekleştirilmesi için temel oluşturur.
Özel alanların en güçlü yanı, “sınırsız genişletilebilirlik” özelliğidir. Bir makale istediğiniz kadar özel alana sahip olabilir ve bu alanlar, ön yüz tema şablon dosyalarında veya arka uç yönetim arayüzünde koşullu olarak çağrılabilir ve görüntülenebilir. Geliştiricilere, genel içerik türlerini belirli içerik türlerine dönüştürme konusunda önemli bir araç sunar; örneğin, sıradan bir “makaleyi” parametre içeren bir “film yorumu”na veya “emlak listesine” dönüştürebilirler.
Tavsiye edilen okuma WordPress Tema Geliştirme Başlangıç Kılavuzu: Sıfırdan Kendi Web Sitenizi Oluşturun。
WordPress’ta özel alanları (custom fields) nasıl kullanırım?
Özel alanları kullanmak esas olarak üç adımdan oluşur: İçeriğe alan eklemek, bunları arka uç arayüzünde yönetmek ve değerlerini temalarda çağırıp göstermek.
Düzenleyicide alanları ekleyin ve yönetin
WordPress’un Gutenberg editöründe, özel alanlar paneli varsayılan olarak sunulmaktadır. Bunu etkinleştirmek için “Ayarlar” kenar çubuğunun sağ üst köşesindeki üç noktaya tıklayın ve “Tercihler” panelindeki “Paneller” seçeneğinden “Özel Alanlar”ı işaretleyin. Etkinleştirildikten sonra, editörün alt kısmında veya kenar çubuğunda “Özel Alanlar” paneli görünecektir.
Burada, “Yeni Özel Alan Ekle” butonuna tıklayarak yeni bir alan oluşturabilirsiniz. Alan adını (anahtarı) ve değerini girin, ardından makaleyi güncelleyerek kaydedin. Örneğin, mevcut makaleye yeni bir alan ekleyin. read_time Alanın değeri “5”tir ve bu, okumak için gereken dakika sayısını temsil eder. Mevcut alanlar için, bu panelde değerlerini düzenleyebilir veya silme işlemi yapabilirsiniz. Bu süreç, basit ve geçici verilerin eklenebilmesi açısından oldukça uygundur.
Temalı şablonlarda alan değerlerini çağırın.
Bir makaleye veya sayfaya özel alanlar ekledikten sonra, genellikle bir sonraki adım bu bilgilerin web sitesinin ön yüzünde ( frontend) görüntülenmesidir. WordPress, bunu yapmak için çeşitli temel fonksiyonlar sunar. get_post_meta() Bu değerleri elde etmek için…
Bu fonksiyonun temel kullanımı, tema şablonu dosyalarında (örneğin…) gerçekleştirilir. single.php 或 page.phpBelirtilen fonksiyon, `(function_name)` içinde çağrılır. Temel sözdizimi şu şekildedir:get_post_meta( $post_id, $key, $single );Bunlar arasında $post_id Bu, mevcut makalenin ID’sidir.$key Bu, sizin tanımladığınız alan adıdır.$single Bu bir boole (true/false) değeridir. true Zaman geldiğinde bir dize geri döndürür. false Bir dizi döndürür.
Tavsiye edilen okuma WordPress Tema Geliştirme Başlangıcı: Sıfırdan İlk Özel Temanızı Oluşturun。
<?php
// 在循环中,获取当前文章ID
$post_id = get_the_ID();
// 获取名为 'read_time' 的自定义字段值,并确保返回单个值
$read_time = get_post_meta( $post_id, ‘read_time’, true );
// 如果字段存在且不为空,则显示它
if ( ! empty( $read_time ) ) {
echo ‘预计阅读时间: ’ . esc_html( $read_time ) . ‘ 分钟’;
}
?> Özelleştirilmiş alanları verimli bir şekilde yönetmek için araçlar
WordPress’ın yerleşik arayüzü özel alanları yönetmeye imkan tanısa da, karmaşık projeler için özel eklentiler kullanmak geliştirme verimliliğini ve kullanıcı deneyimini büyük ölçüde artırabilir.
Gelişmiş Özelleştirilebilir Alan Eklentisi
Advanced Custom Fields (ACF), WordPress özel alanlarını yönetmek ve kullanmak için endüstri standardı bir eklentidir. Orijinal, manuel olarak girilen özel alan arayüzünü, kullanıcı dostu ve anlaşılır bir alan grupları ve alan türleri yönetim sistemi haline getirir.
ACF aracılığıyla, arka planda sürükleyip bırakma yöntemiyle metin, resim, bağlantı, seçim kutusu, ilişki, harita gibi çeşitli alan türlerini içeren alan grupları oluşturabilir ve bunları belirli makale türleri, kategoriler veya hatta seçenek sayfalarıyla ilişkilendirebilirsiniz. Örneğin, “Film” makale türü için “Yönetmen”, “Başrol Oyuncuları”, “Afiş” ve “Vizyon Tarihi” gibi alanları içeren bir alan grupu oluşturabilirsiniz. Geliştiriciler için ACF, alan değerlerini almak amacıyla daha basit fonksiyonlar sunar. the_field(‘director’) 或 get_field(‘director’, $post_id)Ayrıca koşullu mantık, tekrarlayan alanlar (döngüsel veri yapıları), esnek düzenleme seçenekleri gibi gelişmiş özellikleri de destekler; bu sayede içerik yapısının planlanması çok daha kolay hale gelir.
Basitleştirilmiş Meta Box Eklentisi
Meta Box Başka bir güçlü özel alan eklenti çerçevesidir ve hafifliği, yüksek performansı ve geliştiricilere olan dostluğu ile tanınır. Zengin alan türleri ve güçlü genişletme özellikleri sunar ve hem kod aracılığıyla hem de kullanıcı arayüzü üzerinden yapılandırılabilir.
ACF’nin felsefesinden biraz farklı olarak…Meta Box Hizmet geliştiricilerinin ihtiyaçlarını karşılarken aynı zamanda esnekliği de göz önünde bulundurur. Geliştiricilere, PHP dizileri yazarak karmaşık alanları ve alan gruplarını hızlı bir şekilde tanımlama imkanı sunar; bu yöntem, sürüm kontrol sistemleri (örneğin Git) aracılığıyla yönetim için daha uygundur. Ayrıca, geliştirici olmayan yöneticilerin de içeriği kolayca yönetebilmesi için kullanıcı dostu bir arayüz sağlar. Yüksek performanslı web siteleri oluşturmak için idealdir.Meta Box Sade ve özlü kod yapısı nedeniyle tercih edilmektedir.
Özel Alanların Gelişmiş Uygulamaları
Temel ve yönetim araçlarını öğrendikten sonra, özel alanlar (custom fields) birçok gelişmiş kullanım senaryosunu mümkün kılar ve web sitesinin işlevselliğini gerçekten derinleştirir.
Tavsiye edilen okuma WordPress Özel Makale Türlerini Kapsamlı Bir Şekilde Öğrenin: Oluşturmadan İleri Düzey Uygulama Pratiklerine。
İlişkili içerik ve ilişkiler sorgusunu oluşturma
Özel alanlar, makaleler arasında veya makaleler ile kullanıcılar arasında ilişkiler kurmak için kullanılabilir. Örneğin, ACF’nin “İlişki” (Relationship) alanı veya “Makale Nesnesi” (Article Object) alanını kullanarak, bir “Takım” (Team) sayfasında ilişkili birden fazla “Üye” (Member) bilgi sayfasını seçebilirsiniz.
Ön tarafta gösterim yaparken, bunlardan yararlanabilirsiniz. get_field() Bu ilişkili makalelerin ID’lerini alın ve ardından bunları kullanın. WP_Query İkinci bir sorgu yaparak, bu ilişkili makalelerin başlıklarını, özetlerini ve bağlantılarını döngüsel olarak çıktı olarak verin. Bu model, bir portföy oluşturmak, ilişkili okumalar önermek veya bir ürün kategorisindeki tüm ürünleri göstermek için çok etkilidir.
<?php
// 获取当前文章中的‘related_posts’自定义字段(存储的是文章ID数组)
$related_posts = get_field( ‘related_posts’ );
if ( $related_posts ) {
echo ‘<h3>相关文章</h3><ul>’;
// 使用 WP_Query 查询这些相关文章
$args = array(
‘post__in’ => $related_posts,
‘post_type’ => ‘post’,
);
$the_query = new WP_Query( $args );
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo ‘<li><a href="/tr/“‘/"></a></li>’;
}
wp_reset_postdata();
echo ‘</ul>’;
}
?> Özel seçenek paneli oluşturma
Özel alanlar yalnızca makalelere eklenmekle kalmaz. ACF PRO eklentisi sayesinde… Meta Box Bu özelliği kullanarak, tüm web sitesi için genel bir “Tema Seçenekleri” paneli oluşturabilirsiniz. Örneğin, bir seçenek sayfası oluşturarak, web sitesinin alt kısmındaki telif hakkı bilgilerini, sosyal medya bağlantılarını, ana sayfa banner metnini ve resmini tanımlamak için özel alanlar kullanabilirsiniz.
Seçenek sayfasında saklanan değerler, temanın herhangi bir yerinde kullanılabilir. get_field() Fonksiyon çağrılıyor, ancak bazı ayarların veya parametrelerin yapılması gerekiyor. $post_id Parametre ‘option’ olarak ayarlanır. Örneğin,$footer_text = get_field(‘footer_copyright’, ‘option’);Bu sayede içerik ile yapılandırmanın ayrılması sağlanmış, web sitesinin esnekliği ve bakım kolaylığı büyük ölçüde artırılmıştır.
Veri sorgulamalarını ve performansı optimize etmek
Özel alanların kötüye kullanılması, özellikle de belirli bir yapı veya algoritma ile birlikte kullanıldığında, veritabanı sorgu yükünün artmasına neden olabilir. meta_query Karmaşık sorgular yapılırken, örneğin “Fiyat”ın 100“den büyük ve ”Stok Durumu“nun ”Mevcut” olan tüm ürünleri sorgulamak gibi.
Performansı optimize etmek için, özel alanların her zaman doğru anahtar adlarına sahip olduğundan emin olunmalı ve mümkün olduğunca indeksler kullanılmalıdır. Karmaşık filtreleme ve sıralama işlemlerinin gerektiği sitelerde, sorgulamalarda kullanılan kritik meta verilerin (örneğin fiyat, tarih) makalenin kendisine veya özel bir özel veritabanı tablosuna senkronize edilmesi düşünülmelidir. Ayrıca, sorgu sonuçlarını depolamak için önbellekli Transients API’si de kullanılabilir.
Özetle.
WordPress’te özel alanlar (custom fields), web sitesi içeriğinin tek bir yapıdan sınırsız özelleştirme olanaklarına doğru ilerlemesini sağlayan temel bir araçtır. Temel anahtar-değer (key-value) depolama mekanizmalarından başlayarak, ACF (Advanced Custom Fields) gibi eklentiler aracılığıyla daha karmaşık özelliklerin eklenmesine kadar, bu özel alanlar web sitesinin işlevselliğini büyük ölçMeta Box Bu tür araçlar sayesinde içerikler görsel ve yapılandırılmış bir şekilde yönetilebilmektedir; özel alanlar (custom fields) içerik kontrol yeteneğini önemli ölçüde artırmaktadır. Gerçek uygulama alanları son derece geniştir; ister basit ek bilgiler oluşturmak, ister karmaşık içerik ilişkileri kurmak, isterse tüm sitenin yapılandırma seçeneklerini belirlemek olsun, bunlar olmadan işler yapılamaz. Özel alanları derinlemesine anlamak ve ustaca kullanmak, WordPress ile web sitesi oluşturma sınırlarını aşmak isteyen her geliştirici ve web sitesi yapımcısı için zorunlu bir beceridir.
Sıkça Sorulan Sorular.
Özelleştirilmiş alanlar web sitesinin hızını etkileyebilir mi?
Özelleştirilmiş alanların makul bir şekilde kullanılması hız üzerinde çok az etkiye sahiptir. Ancak aşırı kullanım durumunda, özellikle de birden fazla özelleştirilmiş alanı içeren karmaşık işlemlerde, bu durum olumsuz sonuçlara yol açabilir. meta_query Veritabanı sorgulamaları, ilgili alanlarda uygun indeksler bulunmadığında web sitesinin performansını olumsuz etkileyebilir. En iyi uygulama, yalnızca gerekli alanları oluşturmak ve sorgu performansını optimize etmek için önbellek eklentilerinden yararlanmaktır.
Gelişmiş özelleştirilebilir alan eklentileri gerekli midir?
Yeni başlayanlar veya yalnızca bir veya iki basit alan eklemesi gereken kullanıcılar için yerel özelleştirilebilir alan özellikleri yeterli olabilir. Ancak, çoğu ciddi web sitesi projesi için ACF (Advanced Custom Fields) gibi araçların kullanılması daha uygundur. Meta Box Bu tür eklentiler neredeyse zorunludur. Arka plandaki kullanıcı deneyimini büyük ölçüde iyileştirirler, çeşitli alan türleri sunarlar ve kod hatalarını azaltırlar; bu da uzun vadede çok fazla geliştirme zamanı tasarrufu sağlar.
Özel alanları özel makale türlerinde nasıl kullanabilirim?
Özel alanlar ve özel makale türleri “en iyi arkadaşlardır”. Belirli içerik türleri için (örneğin “ürün”, “film”) özel makale türleri kaydettikten sonra, ACF gibi eklentiler kullanarak özel alan grupları oluşturabilir ve bu alanların yalnızca ilgili özel makale türünde görüntülenmesini sağlayacak kurallar belirleyebilirsiniz. Böylece, bu türden yeni bir makale oluşturduğunuzda ilgili özel alanların giriş arayüzünü göreceksiniz.
Ön tarafta özel bir alanın değerini nasıl arayabilirim?
WordPress’in yerleşik arama özelliği, özel olarak tanımlanmış alanların (custom fields) değerlerini aramaz. Bu özelliği etkinleştirmek için arama sorgusunu değiştirmeniz gerekir. Bunu şu şekilde yapabilirsiniz: posts_search 或 posts_join 和 posts_where Bu kancalı (hook) fonksiyonlar, arama için kullanılan SQL sorgusunun kapsamını genişletir ve bunu şunları içerecek şekilde ayarlar: wp_postmeta Tablo. Ancak lütfen unutmayın ki bu, veritabanı sorgularının karmaşıklığını ve süresini artırabilir; bu nedenle performansı dikkatlice test etmek gerekmektedir.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- WooCommerce Çince Tam Kullanım Kılavuzu: Sıfırdan Kendi Çevrimiçi Mağazanızı Kurmak
- Web Sitesi Kurma Kılavuzu: Fikirden Hayata Taşıma Süreci ve Temel Teknolojilerin Ayrıntılı Analizi
- Neden çevrimiçi mağazanızı oluşturmak için WooCommerce’ü seçtiniz?
- WordPress web sitelerinin performansını artırmak için 7 önerilen WordPress eklentisi:
- WordPress ile Web Sitesi Oluşturma Kılavuzu: Sıfırdan Uzmanlığa, Profesyonel Web Siteleri Oluşturmak