WordPress gönderilerini yayınlarken özel alanları otomatik olarak oluşturmak, özellikle büyük bir siteyi yönetiyorsanız veya özel işlevsellik üzerinde çalışıyorsanız, zamandan tasarruf etmenin ve tekrarlayan görevleri azaltmanın güçlü bir yoludur.
Belirli bir içerik türünü her yayınladığınızda aynı özel alanları manuel olarak eklemek yerine, süreci otomatikleştirebilir ve tutarlılığı sağlayabilirsiniz.
Yıllar boyunca birçok WordPress projesi üzerinde çalıştık, basit bloglardan gelişmiş özelliklere sahip karmaşık sitelere kadar her şeyi inşa ettik. Bu süreçte, iş akışınızı daha hızlı ve daha verimli hale getirebilecek bunun gibi birçok pratik ipucu edindik.
Bu eğitimde, WordPress'te gönderi yayınlarken özel alanları otomatik olarak nasıl ekleyeceğinizi adım adım göstereceğiz.

Özel Alanları Otomatik Olarak Neden Eklemeli?
Özel alanlar, gönderilerinize ek bilgi eklemenizi sağlar. Bu bilgi web sitenizde görüntülenebilir, özel tutulabilir veya temanız ve eklentileriniz tarafından WordPress web sitenizin işlevselliğini genişletmek için kullanılabilir.
Özel alanları kullanmanın birçok yaratıcı yolu vardır. Yardımcı fikirlerin bir listesini özel alan ipuçları, püf noktaları ve hack'ler kılavuzumuzda bulabilirsiniz.
Bazı durumlarda, bir gönderi yayınladığınızda otomatik olarak bir özel alan oluşturmak isteyeceksiniz. Bu, WordPress'e işlevsellik eklerken, onu basit bir blogdan daha fazlası olarak kullanabilmeniz için özellikle yararlıdır.
Örneğin, WPBeginner'da bir galeri web sitesi oluştururken bu yöntemi kullandık. Galeriye gönderilen her öğe için kısa URL'leri depolamak istedik. Bu nedenle, her gönderi yayınlandığında depolamak üzere otomatik olarak bir özel alan oluşturduk. kısa URL
Bu tür otomasyon, geliştiricilerin zamandan tasarruf etmelerine, hataları azaltmalarına ve daha az manuel çabayla daha güçlü WordPress siteleri oluşturmalarına yardımcı olur.
Şimdi, kurulumunu adım adım inceleyelim.
Gönderi Yayınlandığında Özel Alanları Otomatik Olarak Ekleme
Bu yöntem, temanızın functions.php dosyasına özel bir kod parçacığı eklemeyi içerir. Deneyimsiz kullanıcıların tema dosyalarınızı düzenlemesini önermiyoruz, çünkü küçük bir hata bile web sitenizi bozabilir.
Instead, we’ll show you how to use the WPCode plugin in this tutorial.

WPCode, temanızın functions.php dosyasını düzenlemek zorunda kalmadan WordPress'e kod parçacıkları eklemeyi kolaylaştırır. Tüm kod parçacıklarınızı tek bir merkezi ekrandan da yönetebilirsiniz.
Eğer bu, WordPress'e ilk kez kod ekleyişinizse, daha fazla ayrıntı için WordPress'te web'den kod parçacıklarını kopyalayıp yapıştırma hakkında kılavuzumuza göz atmalısınız.
Başlamak için ücretsiz WPCode eklentisini yüklemeniz ve etkinleştirmeniz gerekir. Yardıma ihtiyacınız olursa, bir WordPress eklentisinin nasıl kurulacağına dair eğitimimize bakın.
Not: WPCode'un ücretsiz sürümü, WordPress'e özel kod eklemek için ihtiyacınız olan her şeye sahiptir. Zamanlanmış kod parçacıkları, dönüşüm pikselleri ve daha fazlası gibi daha gelişmiş özellikler için WPCode Pro'ya yükseltebilirsiniz.
Eklenti etkinleştirildikten sonra, WordPress yönetici çubuğunuza ‘Kod Parçacıkları’ adlı yeni bir menü öğesi eklenecektir. Üzerine tıklayın ve ardından sonraki ekranda ‘Yeni Ekle’ düğmesine basın.

Bu sizi WPCode'un Kod Parçacığı Kitaplığı'na götürecektir.
Buradan, 'Özel Kodunuzu Ekleyin (Yeni Snippet)' seçeneğine gidin ve altındaki '+ Özel Snippet Ekle' düğmesine tıklayın.

Ardından, ekrana gelen seçenekler listesinden kod türü olarak 'PHP Snippet' seçin.

Bundan sonra, kod parçacığına bir başlık vermeniz ve ardından aşağıdaki kodu kopyalayıp ‘Kod Önizleme’ kutusuna yapıştırmanız gerekir.
add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
add_post_meta($post_ID, 'field-name', 'custom value', true);
}
}
Özel alan için kullanmak istediğiniz gerçek ad ve değer ile 'alan-adı' ve 'özel değer' kelimelerini değiştirmeniz gerekecektir.

Sonra, ‘Ekleme’ bölümüne aşağı kaydırın. Burada, ‘Otomatik Ekleme’ yöntemini seçili bırakmanız gerekecek.

Otomatik Ekleme yöntemiyle, kod parçacığı otomatik olarak doğru konuma eklenecek ve yürütülecektir.
İşiniz bittiğinde, anahtarı ‘Etkin Değil’den ‘Etkin’e getirmeniz ve ardından ‘Parçacığı Kaydet’ düğmesine tıklamanız gerekecektir.

Kod parçası etkinleştirildikten sonra, bir gönderi yayınladığınızda özel alan oluşturulacaktır.
Bu eğitimin, WordPress'te gönderi yayınlandığında özel alanları otomatik olarak nasıl ekleyeceğinizi öğrenmenize yardımcı olduğunu umuyoruz. Ayrıca WordPress'te döngü dışında özel alanları nasıl görüntüleyeceğinizi öğrenmek veya web sitenizi büyütmek için olmazsa olmaz WordPress eklentileri listemize göz atmak isteyebilirsiniz.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

Jiří Vaněk
Birden fazla kullanıcısı olan bir web sitem varsa ve bir makale yayınlandığında otomatik olarak bir yazar biyografisi eklenmesini istiyorsam, bu kılavuz kullanılabilir mi? Yani, özel alanlar, makaleyi kimin yazdığına bağlı olarak kısa bir yazar biyografisinin başlangıca eklenmesini sağlamak için kullanılabilir mi? Bunu bu şekilde otomatikleştirmek istiyorum. Şu anda bunu Elementor kullanarak yapıyoruz, her yazarın kaydedilmiş şablonu var ve bunu manuel olarak başlangıca eklemek zorunda kalıyor.
WPBeginner Desteği
Aradığınız şey, aşağıda rehberimizde ele aldığımız bir yazar biyografisi kutusudur:
https://www.wpbeginner.com/wp-tutorials/how-to-add-an-author-info-box-in-wordpress-posts/
Yönetici
Sateesh Raghuwanshi
Bunu ‘ad_system’ adlı özel gönderi türü için eklemem gerekiyor
nayan
Gönderi için kategori kimliğini post_meta tablosuna eklemek istiyorum. function add_custom_field_automatically($post_ID) fonksiyonu buna uyum sağlamak için nasıl ayarlanabilir?
Teşekkürler
chris
Gönderiyi oluştururken özel alanı eklemek yerine, yönetici sayfasında özel alanı varsayılan olarak nasıl gösterebilirim?
puanthanh
özel gönderi türüne eklenmiyor
Yayın Kadrosu
If you notice, the code above doesn’t have anything related to the custom post types. It only adds to Post and Page “content type”. So you would have to specify the hook for your custom post type.
Yönetici
puanthanh
Cevap için teşekkürler. Bu kod konusunda bana yardımcı olabilir misiniz.
add_action(‘publish_page’, ‘add_custom_field_automatically’);
add_action(‘publish_post’, ‘add_custom_field_automatically’);
add_action( ‘save_post’, ‘add_custom_field_automatically’ );
function add_custom_field_automatically($post_ID) { global $post; if(!wp_is_post_revision($post_ID)) { global $wpdb; $user_id = $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_ID"); $themename = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = ‘themeperauthor’ AND user_id = $user_id"); add_post_meta($post_ID, ‘themeperauthor’, $themename, true); } } Kullanıcı meta alanı değiştiğinde, özel alan değerini otomatik olarak silip yenisiyle güncellemek istiyorum
brian
Gönderi yayınlama/güncelleme üzerine bazı gizli özel alanlar eklemeye çalışıyorum (alan adının önüne “_” koyarak), ancak nedense wp_postmeta girişlerinin veritabanına yazılması için gönderiyi iki kez güncellemem gerekiyor.
Önceliği değiştirmeyi ve diğer eylem kancalarını (draft_to_publish, edit_post vb.) denedim ancak bir fark yaratmıyor gibi görünüyor.
Herhangi bir fikriniz var mı?
Yayın Kadrosu
Otto'nun transient API ile ilgili hilesini kullanıyor musunuz?
Yönetici
Boba
Thanks for including the source link
Yayın Kadrosu
Thanks for providing an amazing tip
Yönetici
Daniel Suarez
Thanks Otto another great tip!
Piet
bu özel gönderi türleri için de çalışır mı?
sth gibi add_action(‘publish_custom-post-typ-name’, ‘add_custom_field_automatically’);
Otto
Evet, olacaktır.
Bu tekniğin, insanların farkında olması gereken bir dezavantajı, birisi yayınlanmış bir gönderiyi düzenlerse, bu kancanın düzenlemede TEKRAR tetikleneceğidir. Bu nedenle, meta'yı eklemeden veya güncellemeden önce kontrol etmeniz veya kullanım durumunuz için en mantıklı olanı yapmanız gerekir.
Kodunuzun yalnızca ilk yayında tetiklenmesini istiyorsanız, o zaman transition_post_status kancasını kullanabilirsiniz. Bu kanca şu şekilde çalışır:
add_action('transition_post_status','example',10,3);
function example($new, $old, $post) {
// $new is the new post status ('publish')
// $old is the old post status ('draft')
// $post is the complete Post Object (so use $post->ID for the ID, etc)
}
Ardından, burada şuna benzer bir kontrol yapabilirsiniz:
if ($new == 'publish' && $old != 'publish')
Kodunuzun yalnızca gönderi durumu daha önce ne olursa olsun gerçekten yayınlandı durumuna geçtiğinde kullanılmasını sağlamak için. Bu kanca, {$status}_{$post-type} kancalarıyla aynı anda tetiklenir, bu nedenle işlemlerinin temelde aynıdır.
Piet
Teşekkürler Otto, biraz üzerinde çalışacağım!
Yayın Kadrosu
Açıklama için teşekkürler Otto.
Yönetici
Vivek Parmar
Bu kullanışlı ipucu için teşekkürler. daha önce özel alanları kullanırken manuel olarak çalışmak zorundaydım. şimdi bu otomatik olarak halledecek. bana değerli zamanımı kurtardığınız için teşekkürler