24 Haziran 2013 Pazartesi

WordPress Özel Mesaj Türleri Döngü içine alın

WordPress WordPress ortamda geliştiriciler için Özel Mesaj Türleri ile yeni bir dönem başladı. Olanakları çok sayıda ve öncelikle bağlıdır geliştirici bilgi gelmektedir. Yine de, orada nasıl WordPress Özel Mesaj Türleri kullanmak için pek çok dersler vardır, ama bu yeterli değil - en azından çoğu durumda ve bu nedenle çeşitli adımlar CPT kullanımı daha verimli ve düzgün yapmak için gereklidir.
Bu yazımda kısaca WordPress döngü içinde Özel Mesaj Türleri içeriği nasıl açıklamak istiyorum. Bu tam bir rehber değil, ipuçları, eleştirmenler, bizim yorum bölgede ipuçları eklemek için çekinmeyin.


Ekran görüntüsü burada Eklentiler edildi, CPT kullanımı bir örnektir Arşiv und Pasaj oluşturulan, farklı görevleri vardır ve CPT ile ihtiyacınız olan ihtiyaçlarına uygun.
İlk durumda, sözdizimi sorgu nasıl kullanılacağı gösterilmiştir ve parametreler ile CPT türüne geçer. Tema şablon olarak sadece CPT okunacak sağlar. Sorgunun Diğer tüm parametreler bakir kalır.
  • query_posts ( 'post_type = my_post_type' )
Başka bir çözüm, tek bir tarzda ve çeşitli NPT geçirilir esas farklılık, hangi bir dizi bulunmaktadır.
  • Küresel $ query_string ;
  • parse_str ( $ query_string , $ args );
  • $ Args [ 'post_type' ] = array ( 'my_post_type' , 'my_second_post_type' );
  • query_posts ( $ args );
WP döngü tamamlamak için ve sınırlamak için değil, dizinin bir parametre eklenir post_type . Yani sadece dizisi yoluylaarray_merge dizi bir başka diziye eklenir.
  • Küresel $ WP_Query ;
  • $ Args = array_merge ( $ WP_Query -> sorgu , dizi ( 'post_type' => 'my_post_type' ) );
  • query_posts ( $ args );
Ayrıca size kendi değişkenleri bunları kullanmak istiyorsanız, özellikle Ya Temalar veya Eklentiler, kendi sorguları tanımlayabilirsiniz.
  • $ Args = array (
  •     'Post_type' => 'my_post_type' ,
  •     'Post_status' => 'yayımlamak' ,
  •     'POSTS_PER_PAGE' => - 1
  • );
  • $ Mesaj = new WP_Query ( $ args );
  • eğer ( $ Mesajları -> have_posts () ) {
  •     ise ( $ Mesajları -> have_posts () ) {
  • ...
  •     }
  • }
  •             
  • wp_reset_query ();
Sonunda bunu Plugin ile kontrol ve test sırasında kolayca kapatmak belirli bir cazibesi olan bir çözüm de. Ayrıca, bir tapa uygulama uygulamak için basit ya da Childtheme veya tapa aracılığıyla mevcut temaları bir uzantısı olduğu gibi. Hook hakkındapre_get_posts Eğer CPT dahil olmak üzere sorgu çeşitli şeyler, ayarlayabilirsiniz. 
bunu önyüz çıkış nasıl yanıt, görebilmeniz için örnekte ben, farklı koşullarda uygulanan koşullu etiketleri ile var.
/ / Bu $? - Örneğin sınıf yapılarda kullanılmıştır
/ / Wp döngü için özel yazılan türü eklemek
add_filter ('pre_get_posts', array ($ bu, 'add_to_query'));

/ / Ads sorgulamak için
fonksiyonu add_to_query ($ sorgu) {

 if (Yönetici onayýndan sonra yayýnlanacaktýr () | | is_preview ())
  dönmek;
 
 if (isset ($ sorgu -> query_vars ['suppress_filters']))
  $ Sorgu -> query_vars ['suppress_filters'] = FALSE;

 Kısıtlamalar için / / koşullu etiketler
 if (is_home () | | is_front_page () && (YANLIŞ == $ sorgu -> query_vars ['suppress_filters'])) {
  $ Sorgu -> set ($ this -> my_post_type, array ('post', $ this -> get_textdomain ()));

 Sorgu $ dönmek;
}

Hiç yorum yok:

Yorum Gönder