En çok ihtiyaç duyduğunuzda güvenilir WordPress eğitimleri.
WordPress Başlangıç Rehberi
WPB Kupası
25 Milyon+
Eklentilerimizi kullanan web siteleri
16+
Yıllık WordPress deneyimi
3000+
Uzmanlardan WordPress eğitimleri

WordPress 3.0'da Özel Gönderi Tipleri nasıl kullanılır

2.9 sürümünden bu yana WordPress, özel gönderi türlerini kullanma yeteneğini tanıttı. Şimdi 3.0 sürümüyle, özel gönderi türleriniz için paneller oluşturma seçeneğiyle işler biraz daha ileri götürüldü. Bu eğitimde, Özel Gönderi türlerini sitenize WordPress sitenize nasıl uygulayacağınızı göstereceğiz.

Özel Gönderi Türleri Oluşturma – Eklentileri Kullanma

Sürüm 3.0 itibarıyla WordPress'in özel gönderi türleri oluşturmak için yerleşik bir kullanıcı arayüzü (UI) yoktur. Özel gönderi türleri oluşturmak için kullanabileceğimiz yalnızca iki seçeneğimiz var: eklentiler veya bunları temanızın functions.php dosyasına kodlamak. İlk olarak, özel gönderi türleri oluşturmak için eklentileri nasıl kullanabileceğimizi inceleyelim.

Özel Gönderi Türü Arayüzü

Özel Gönderi Türleri Arayüzü

Özel Gönderi Türü Arayüzü, Brad Williams tarafından geliştirilen ve özel gönderi türleri ve taksonomiler oluşturmanıza olanak tanıyan bir eklentidir. Bu eklentinin en havalı özelliklerinden biri, özel gönderi türleri oluşturmak için kod üretmesidir, böylece bunu temanızın functions.php dosyasına yapıştırabilirsiniz. Bu eklentinin tuhaflıklarından biri, tüm gönderi türleriniz arasında taksonomileri paylaşamama durumudur.

Özel Gönderi Tipleri için kod oluştur

Özel Gönderi Tipi Arayüzü panelinden “Yeni Ekle”ye tıklayın.

Özel Gönderi Tipi Arayüzü için Yeni Ekle Düğmesi

Sonra doldurmanız için birkaç seçenek verilir. “Gönderi Türü Adı”, WordPress'in bu türdeki tüm gönderileri sorgulamak için kullanacağı addır. “Etiket”, tıpkı normal “Gönderi” menüsü gibi, Kontrol Panelinizin kenar çubuğunda görüntülenecek olan addır. “Gelişmiş Seçenekleri Görüntüle”yi genişletirseniz yapılandırabileceğiniz birkaç seçenek daha göreceksiniz. Çoğu, “Genel” ve “UI Göster” gibi kendi kendini açıklayıcıdır. İlki doğru olarak ayarlandığında özel gönderi türü menüsünün kenar çubuğunda görüntülenmesine izin verir ve diğeri (UI göster) doğru olarak ayarlandığında menü panelini oluşturur.

“Rewrite”, özel gönderi türünün SEO Dostu WordPress URL'lerini (Kalıcı Bağlantılar) kullanmasını sağlayan şeydir. “Özel Yeniden Yazma Kaydırıcısı” istediğiniz herhangi bir şeye ayarlanabilir. WordPress, kalıcı bağlantıları oluşturmak için bu kaydırıcıyı kullanacaktır. Yani example.com adresinde “movies” özel yeniden yazma kaydırıcısı varsa, özel gönderi türü kalıcı bağlantınız example.com/movies şeklinde olacaktır.

WordPress "Query Var" fonksiyonu, özel gönderi türünüzün gönderilerini sorgulamanıza olanak tanır. Yani daha önce verilen örneği kullanırsak, Movies gönderi türü altında yazılmış, My First Movie Post başlığına sahip bir gönderiye erişmek için example.com/?movies=my-first-movie-post girebiliriz. Yani sorgu değişkeni şuna benzer: ?posttypename

Son olarak, özel gönderi türünüzün desteklediği farklı özellikleri, örneğin küçük resimleri/öne çıkan resmi ve özetleri seçebilirsiniz.

Özel Gönderi Türleri Arayüz Seçenekleri

Özel Gönderi Türleri Oluşturma – Functions.php dosyasını kullanma

Özel Gönderi Türlerini Kodla

Bir eklenti olmadan özel gönderi türlerini kullanmayı tercih ederseniz, temanızın functions.php dosyasına aşağıdaki kodu ekleyin:

// Creates Movies post type
register_post_type('movies', array(
'label' => 'Movies',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'movies'),
'query_var' => true,
'supports' => array(
'title',
'editor',
'excerpt',
'trackbacks',
'custom-fields',
'comments',
'revisions',
'thumbnail',
'author',
'page-attributes',)
) );

Kodu inceleyelim.

register_post_type( $post_type, $args ): Bu fonksiyon iki parametre kabul eder: $post_type veya gönderi türünün adı ve $args, bir argüman dizisi.

label: Yönetici panelinin kenar çubuğunda görüntülenen gönderi türü için verilen çoğul ad.

public: true/false. Bu türdeki gönderilerin yönetici kullanıcı arayüzünün doldurulmasına izin verir.

show_ui: true/false. Bu gönderi türünü yönetmek için varsayılan bir kullanıcı arayüzü gösterir veya gizler.

capability_type: Varsayılan: post Okuma, düzenleme ve silme yeteneklerini kontrol etmek için kullanılacak gönderi türü.

hierarchical: Gönderi türü hiyerarşik mi.

rewrite: true/false. Varsayılan: true Eğer slug argümanı girilirse, gönderilere slug adı eklenir.

query_var: true/false Gönderi türü adını bir sorgu değişkeni olarak ayarlar.

destekler: Varsayılan: başlık ve yazar Gönderi türünün izin verdiği farklı destek özelliklerini ayarlar.

register_post_type() hakkında daha fazla bilgi için lütfen WordPress Codex 'i ziyaret edin.

Özel Gönderi Türü Gönderilerini Görüntüleme

Özel gönderi türünüzden gönderileri görüntülemek için döngüye aşağıdaki kodları ekleyin. "name" kısmını gönderi türünüzün adıyla değiştirin. Not: Özel gönderi türlerini index.php dosyanıza eklemeniz gerekmez. Özel bir WordPress sayfası oluşturabilir ve döngü içinde aşağıdaki sorguyu çalıştırabilirsiniz.

$query = new WP_Query( 'post_type=name' );

Birden fazla gönderi türünden gönderileri görüntülemek için yukarıdaki kodu aşağıdaki gibi değiştirin. Filmleri özel gönderi türü adınızla değiştirin.

$query = new WP_Query( array(
	'post_type' => array( 'post', 'movies' )
) );

Yukarıdaki kod, normal gönderi türünden (post) ve özel gönderi türünden (movies) tüm gönderileri gösterecektir.

İşte bu kadar. Bu eğitimde yardımcı olduğumuzu umuyoruz ve sorularınızı yorumlarda sormayı unutmayın.

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıklamanız durumunda komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve bize nasıl destek olabileceğinizi görün. İşte editöryal sürecimiz.

Nihai WordPress Araç Seti

Araç Kitimize ÜCRETSİZ erişim kazanın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Okuyucu Etkileşimleri

58 CommentsLeave a Reply

  1. İki özel gönderi türü oluşturdum ancak sayfamda yalnızca ilki görünüyor. Bunu ekledim
    $query = new WP_Query( array( ‘post_type’ => array( ‘post’, ‘featured’, ‘latest’ )
    ) );

    döngümün içinde ama hiçbir şey yok. bunu nasıl çözebilirim?

  2. Özel gönderi tiplerini blog arşiv sayfasına ve rss beslemesine nasıl ekleyebileceğimi biliyor musun?

  3. Öncelikle, harika bir makale! Özel gönderi türlerini kod aracılığıyla uygulamaya çalışıyorum. WordPress'in mevcut belgelerinin (http://codex.wordpress.org/Function_Reference/query_posts) query_posts fonksiyonunun genel olarak kullanılmaması gerektiğini ve sorguları değiştirmek için pre_get_posts kancasının kullanıldığını belirttiği dikkate değerdir.

    "Bunun yerine pre_get_posts filtresini kullanmanız ve is_main_query'yi kontrol ederek ana sorguyu değiştirmeniz şiddetle tavsiye edilir"

    Tekrar, harika bir makale, paylaştığınız için teşekkürler.

    Teşekkürler.

  4. VAY BEE…web sitesini çalıştırmak için WP kullanan bir acemi için bu kesinlikle Başlangıç seviyesi bir şey değil! İstediğim Özel Sayfamı ayarlamak için muhtemelen bir WP geliştiricisine ulaşmam gerekecek.

    • Özel Gönderi Türleri, geliştiricilerin WordPress işlevselliğini genişletmesi için oluşturuldu. Yeni başlayanlar için asla tasarlanmadı.

      Yönetici

  5. query_posts( ‘post_type=movies’);
    ?>

    Bunu yirmi on bir çocuk teması sayfa şablonumda çalıştıramıyorum, film sayfası çekmek için nereye koymalıyım. Aslında gerçekten istediğim özetler. Teşekkürler Mark

  6. Bu eklentiyi kullanırken ve yukarıdaki kodu loop.php'ye eklerken kategoriler üzerindeki kontrolü kaybedeceksiniz... özel gönderi türüm tüm kategorilere ekleniyor... herhangi bir yardım?

    • @muntzdesigns Birden fazla döngünüzün olmasının nedeni budur… ana blog döngünüz, archive.php, category.php vb… Özel tasarlanmış bir sitede, bunun uygun şekilde çalışması için bunu kullanmanız gerekecektir.

      • @wpbeginner@muntzdesigns Yani yukarıdaki kodu tüm dosyalara mı eklemeliyim? (loop.php, archive.php ve category.php). Teşekkürler.

        • @muntzdesigns Hayır. Kodu yalnızca ön sayfalara eklersiniz. Yaşadığınız sorun, özel gönderi türlerinin tüm kategorilere eklenmesiydi… Yukarıdaki kodu yalnızca ana döngüye eklemeniz gerekir. Ardından kategori arşivi, taksonomi arşivi, yazar arşivi… için yeni bir döngü oluşturun.

  7. CMS Press eklentisindeki İçerik Türü Tanımlayıcısı tam olarak ne işe yarar? Özel gönderi türüne kategori slug'ını öne eklemenin bir yolunu arıyorum (example.com/category/post_type/postname) ancak İçerik Türü Tanımlayıcısında %category%/%identifier%/%postname% kullandığımda otomatik olarak şu şekilde dönüşüyor: %categoryidentifierpostname

  8. Bu, WordPress'te özel gönderi oluşturmak için çok harika bir eğitim. Adımlar ayrıntılı olarak verilmiş, kolayca takip edilebilir. Bu büyük, büyük bir yardım!

  9. Vay be, tüm CMS Basın işini halletmiştim ama gönderilerde nasıl görüneceğini anlayamamıştım. Sanırım o kadar uzun zamandır ortalıkta ki herkes zaten bilindiğini varsayıyor. Özel Gönderi Türümün Döngüde görünmesini sağlamak için Mükemmel Cevap.

    Jerry Craig
    Kadehçi

  10. Teşekkürler, Özel gönderi türümü ana sayfada göstermeme çok yardımcı oldu. Kesinlikle yer imlerine eklendi, teşekkürler.

  11. Eklentiyi denedim, çok etkileyici. Ancak, temalarımın 'Sayfa' özniteliklerinden bir sayfa özniteliğini görünür hale getirmeye çalışıyorum, yani tam genişlikte sayfa seçeneğini kullanma yeteneği. Eklentinizin yalnızca Gönderi türü düzenlerinden öznitelikleri çektiğini, Sayfa türü düzenlerinden değil mi varsaymalıyım? Tek istediğim, bir gönderiyi tam, önceden belirlenmiş bir şablona ayarlama seçeneğine sahip olmak.

    Yine de harika bir iş çıkarmışsınız – bunu çok kullanacağım.

    Şerefe
    Ed

  12. Eklenti yolunu denedim ama gönderiyi gösteremedim. Belki de loop.php dosyasını bulamadığım içindir.

    Neyse, çok teşekkürler, yakında işe yarayacağına eminim.

    WordPress ile yapılabilecek harika bir şeyin, drupal'daki views modülü gibi özel içerik görünümleri oluşturma olasılığına sahip olmak olduğunu söylemek istiyorum.

    Pods ve Pods CMS adında bunun mümkün olmasını sağlayan bir eklenti olduğunu biliyorum. Eğer benim gibi hiç anlamıyorsanız, wpbeginner'da bir gönderide geliştiriciden yardım isteyebilirsiniz. Eminim birçok kişi bunu sevecektir. Görünümleri sunmak, bir cms'yi gerçekten dinamik bir cms yapan şeydir.

    • Döngü.php temanızda olmayabilir. Döngü ayrıca index.php, archive.php, category.php vb. dosyalarınızda da bulunabilir. İsterseniz özel bir döngü de oluşturabilirsiniz.

      Yönetici

  13. İyi bir eğitim, paylaştığınız için teşekkürler.

    Bununla ilgili bir sorum var.
    functions.php aracılığıyla özel bir gönderi türü oluşturdum (bir takvim) ve bu gönderi türünün admin arayüzünde özel bir meta kutusu var. Bu meta kutusu bir alanda jQuery kullanıyor.(http://jqueryui.com/demos/datepicker/).
    Bu tarih seçicinin çalışması için gerekli betikleri yerleştirmem gerekiyor.
    add_action(‘admin_enqueue_scripts’,’enqueue_my_scripts’);
    çalışıyor ancak betiklerim tüm admin arayüzünde yükleniyor. (bu varsayılan WP admin jquery ile çakışıyor)
    Bu yüzden ihtiyacım olan şey özel gönderi türüm için kancadır.
    bu:
    add_action(‘register_post_type’,’enqueue_my_scripts’);
    çalışmıyor çünkü register_post_type bir kanca değil.
    Öyleyse, özel bir gönderi türü için kanca nedir?

    • Betiği kaydetmeden önce fonksiyon tanımınıza şunları eklemeyi deneyebilirsiniz:

      if(is_admin()) return;

      Yani şöyle bir şey:

      function some-function(){
      // admin sayfalarında buna ihtiyacımız yok, bu yüzden...
      if(is_admin()) return;
      // özel betiği kaydet
      wp_enqueue_script( 'some-script' );
      }

  14. Her içerik türünü döngüde nasıl gösterebilirim? Yani, neredeyse Tumblr gibi. Bir resim paylaşırsam... döngüdeki kodu özelleştirmem gerekiyor – aynı şey bir bağlantı paylaştığımda da geçerli.

  15. Özel türümün gönderilerini sorgulamak için döngüyü çalıştıramıyorum. Örneğiniz yeterince kolay görünüyor, bu yüzden şunu denedim: $var = query_posts( ‘post_type=sponsor’);

    Sonra bir döngü başlattım
    while ($var ->have_posts()) : $var ->the_post();
    Bir şeyler yap
    endwhile;

    bu bir php hatası döndürüyor:
    Fatal error: single-sponsor.php dosyasının 22. satırında nesne olmayan bir nesne üzerinde üye fonksiyonu have_posts() çağırma

    22. satır, while döngüsünün olduğu satırdır.

    Fikirler? Neyi yanlış yapıyorum?

  16. Özel alan için bir etiket oluşturmayı denedim ve özel türün döngüsünde get_the_tags kullandığımda hiçbir şey yazdırmıyor.
    Herhangi bir öneriniz var mı?

  17. Bu yeni özellikten çok heyecanlıyım ^-^ Güzel bir video yapmışsınız. Ancak örneğinizde, neden özel gönderi türleri kullanıyorsunuz da gönderiler için kitaplar ve filmler gibi bir kategori oluşturmuyorsunuz? Bu şekilde özel gönderi türünün tüm zahmetinden kurtulursunuz.

    • Birincisi, şeyleri farklı bir şekilde düzenlemenizi sağlar. İkincisi, farklı seçeneklere sahip tamamen farklı bir yazma paneline sahip olabilirsiniz. Çok daha fazla özelleştirmeye olanak tanır...

      Yönetici

  18. Bu harika makale için teşekkürler! Ben gerçek bir wp acemisiyim ve belki bu konuda bana yardımcı olabilirsiniz:
    "display archives by cat"-plugin by kwebble ile yapılabildiği gibi, kenar çubuğunda özel bir gönderi türünün arşivlerini görüntülemek mümkün müdür?

    • Evet, özel gönderi türlerini arşiv olarak görüntülemek mümkündür. Belirli bir gönderi türünden gönderileri veya kategorileri görüntülemek için kenar çubuğunda özel bir döngü oluşturmanız yeterlidir.

      Yönetici

  19. Özel gönderilere seçenek ekleme konusunda anlaşılması kolay rehberler var mı? Örneğin, bir film drama, komedi, korku ise… bu seçenekleri özel gönderi düzenleme panelinin İÇİNDE onay kutuları olarak mı? Bunun için bir rehber veya eklenti bulamıyorum.

  20. Merhaba, Harika bir makaleydi. Soruma cevap verebileceğinizi umuyordum.
    Son birkaç satırda şunlar var:

    query_posts(array('post_type' => array('post', 'movies')));

    bu, filmler adlı tüm gönderileri ve gönderi türlerini döndürür.

    Hem 'filmler' adlı gönderi türlerini hem de 'filmler' kategorisindeki gönderileri döndürmeyi biliyor musunuz, ancak bu kategoriye sahip olmayan diğer tüm gönderileri hariç tutuyor musunuz?

    • Özel Gönderi Tipleri, WordPress'i bir Blog'dan daha fazlası için kullanan kullanıcılar için iyidir, örneğin CMS. Diyelim ki portföyünüzün ve blogunuzun olduğu bir siteye sahip olmak istiyorsunuz. Açıkçası bloglarınızın portföyünüzle aynı görünmesini istemezsiniz. İşte o zaman özel gönderi tipleri kullanışlı olur. Bu, WordPress'i bir sonraki seviyeye taşımak için çok yönlü bir özelliktir. Ortalama blog kullanıcısı için muhtemelen özel gönderi tiplerine ihtiyacı yoktur.

      Yönetici

      • Tamam, ancak bununla şeyleri kategorize etmek arasındaki farkı hala anlamaya çalışıyorum. İnsanlar için ayrı sayfaların yalnızca “güncel olaylar” kategorisini ve diğerinin “projeler” kategorisini veya her neyse listelediği pek çok site oluşturdum. Bu nasıl daha iyi?

        • Bu organizasyon açısından daha iyi. Belirli bir gönderi türü için özel taksonomi, yazı paneli vb. bulundurabilirsiniz.

  21. Bunu, gönderi türleriyle sıradışı bir şey göstermek yerine, eski "filmler ve kitaplar" örneğini kullanmak yerine daha faydalı olacağını düşünmekten alamıyorum.

    Gönderi türleriyle bir yan blog veya daha pratik bir şey nasıl olur? Tüm bunlar, WP Codex'in sonunda zaten orada değilse, orada olacak olanı yeniden ifade ediyor.

    • Bu şekilde hissettiğiniz için üzgünüz Chris. WP Codex bunu nasıl yapacağınızı gösteren bir video yayınlamayacaktır. Özel gönderi türleri için hangi isimleri kullandığımızın bir önemi yok, önemli olan onları nasıl ekleyeceğimizdir. Özel gönderi türü hakkında bir yazı yazmak için olağanüstü bir site oluşturmayacağız. Eğer bu bilgiyi arıyorsanız, muhtemelen bunu kendiniz yapmanız daha iyi olacaktır. Bu blog hala başlangıç seviyesindeki kullanıcıların ihtiyaçlarını karşılamalıdır, bu yüzden eklenti yöntemini paylaştık.

      Yönetici

  22. Bu WordPress 2.9'da çalışır mı yoksa sadece 3.0 için mi?

    3.0'ı denedim, ancak bazı tuhaflıklar oldu ve etkinleştirildiklerini belirtenler dahil hiçbir eklentim etkinleşmedi. Çok garip bir durumdu!

    -Kevin

    • Bu 3.0 ile çalışır, bu yüzden yalnızca 3.0'da kullanın. WordPress 3.0'ı yeniden yüklemeyi deneyin, birkaç siteyi üzerinde çalıştırıyoruz.

      Yönetici

  23. Videoyu az önce izledim...

    Her şeyi çalıştırmak için php dosyalarını düzenlememiz (yani sabit kodlama) gerektiği doğru mu?

    • Hayır, ikisinden birini yapmanız gerekiyor. Videomuzda her iki yolu da gösterdik. Ya sabit kodlama yolunu ya da eklenti yolunu yapabilirsiniz.

      Yönetici

      • Allright, I see, thnx! ;)

        O zaman sanırım zorlu kodlama yoluyla başladın? O zamanlar sadece tüm kodlama şeylerini gördüğümde bıraktım. Bu yüzden eklenti yolunu görmedim sanırım…

  24. Çok güzel makale. Özel Gönderi Türü Arayüzü eklentisi, gönderi türlerini kaydetmenin ham PHP koduna çok benzer seçeneklere sahiptir, bu geliştiriciler için harikadır.

    Özel gönderi türleriyle çalışmak için birçok kullanışlı eklenti tanıttığınız için teşekkürler.

  25. WordPress'in özel gönderi tiplerini doğrudan wp çatısına entegre etmesinden memnunum. Ancak, Magic Fields veya Flutter gibi mevcut eklentileri kullanmaktan nasıl daha iyi olduğunu göremiyorum. Bu eklentilerle aynı etkiyi elde edersiniz, ayrıca kurulumu kolay özel alanlar, farklı türlerde ve verilerinizi girme ve görüntüleme esnekliği sunar. wp 3.0, kutudan çıktığı haliyle herhangi bir şeyi destekliyor mu?

    • Özel Alanlar ve arka uçtaki hemen hemen her şey için Özel Gönderi Türleri ile bir kullanıcı arayüzü oluşturabilirsiniz. Bu eklentilerin kullanıcılar için işleri çok kolaylaştırdığı doğru, ancak bu eklentilerden herhangi biri geliştirme aşamasında başarısız olursa, başka seçeneğiniz kalmaz.

      Yönetici

      • Haklısın. Beta sürümüyle biraz oynadım ama sanırım yeterince oynamadım. O yöne doğru giderse heyecan verici olur. Bu eklentileri kullanma konusunda deneyim kazandığımdan beri artık neredeyse onlarsız bir site yapmıyorum

        Bu yüzden tüm bu araçların orijinal uygulama içinde mevcut olması ve yönetilmesi harika olurdu. Bunun daha iyi bir arka uç yönetimine yol açabileceğini ve belirli bir eklentiyi destekleyen küçük bir grup yerine daha fazla insanın katkıda bulunmasını teşvik edebileceğini görebiliyorum.

        • Sanırım özel gönderi türü kodunun bazı kısımlarını kasıtlı olarak kod olarak bırakmışlar. Ortalama kullanıcının bununla uğraşmasını sağlamak için.

    • Yirmi onbir'de hiçbir taksonomi görüntüleyemiyorum, ayrıca baştan sona gösteren bir öğretici de bulamıyorum, hepsi yirmi on'a ve döngüye odaklanıyor gibi görünüyor

Cevap Bırakın

Yorum bırakmayı seçtiğiniz için teşekkürler. Lütfen tüm yorumların yorum politikamıza göre denetlendiğini ve e-posta adresinizin YAYINLANMAYACAĞINI unutmayın. Lütfen isim alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.