Özel Yazı Türleri: Düzenleyiciden nasıl kurtulurum (-meta kutusu)


9

Post-editor'den (visual + html) nasıl kurtulabileceğimi soruyorum. Yazı tipi desteğini kaydetmemeye çalıştım ve hala görünüyor (kayıt silme, düzenleme düzenleme ekranındaki diğer tüm varsayılan meta kutularla iyi çalışıyor). Ben de çok işe yaramadı remove_meta_box ile kaydının silinmesine çalıştım (başlık meta kutusu dışında her şey için çalışır). Belki bir şeyleri özlüyorum. Zaten web'de arama yaptı ve hiçbir şey bulamadı. Umarım birisi bana söyleyebilir. Teşekkürler!

Ps. Başlık alanını da devre dışı bıraktığım için bir çözümden memnun olurum, ancak bu 2. (yazı tipi çalışmalara kaydolmamak).

(Wordpress sürümü 3.0.4'tür.)

Yanıtlar:


17

Gönderi türünün bildiriminde 'desteklere' boş bir dizi verilmesi, düzenleme sayfasındaki diğer tüm varsayılan kutularla birlikte düzenleyiciden ve başlıktan kurtulmalıdır.

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

Sonuç: alternatif metin "Destekler" i göstermek istediğiniz geri izleme, yorum vb. Öğelerle doldurun. Hiyerarşik sınıflandırma meta kutularından da kurtulmak istiyorsanız burayı ziyaret ettiğinizden emin olun .


Şimdiye kadar teşekkürler. Benim sorunum herşeyi boşa harcayamam. Özel yazı türleri, özel sınıflandırmalar ve etiketler oluşturmayı hızlandırmak için üç sınıf yazdım. Varsayılanları var. Özel yazı türleri söz konusu olduğunda her şey yeterlidir. Ancak belirli yazı türleri için bazı kutuları kayıttan çıkarmalıyım. Ve biri için editör kutusunu da silmem gerekiyor.
kaiser

Herşeyi boş bırakarak ne demek istiyorsun? Eğer editörden kurtulmak istiyorsanız, sınıfınızda yazı tipini oluştururken 'editör' dizisine 'editör' yazmayın.
Manny Fleurmond

2
@kaiser kendi sınıflarınızsa sorun nedir? Onları
hallettirir

@Rarst: Yalnızca aşağıdakileri yapan bir temeldir: bir diziden yayın türlerini ve sınıflandırmalarını kaydetme ve $ etiketleri ve $ args (varsayılan ve özel) için bir filtre sunma. Terimler sınıfı yalnızca bir diziyi güncelleyen ve ondan atanan silinemeyen terimler oluşturur. Meta kutuları sınıf olmadan kolay olabilir ve benim entegre etmem anlamlı olmaz. Sınıflar sadece zaman kazanmak ve müşterilerin sistemin ihtiyaç duyduğu terimleri silmelerini engellemek için oradalar. Ama baktığın için teşekkürler. Yardımınız çok takdir
ediliyor

2
@kaiser sonra supportsfiltre aracılığıyla boş diziye ayarlama ile ilgili sorun nedir?
Rarst

15

Bağımsız supportsdeğişken için hiçbir şey iletmezseniz, varsayılan ayarları 'title', 'editor'kullanılır (burada "hiçbir şey" olan herhangi bir şeydir empty()).

Ancak, yazı türünü kaydettikten sonra bir şey için destek ekleyebileceğiniz gibi, bir şey add_post_type_support( $post_type, $feature )için desteği arayarak kaldırabilirsiniz remove_post_type_support( $post_type, $feature ). Dolayısıyla, yazı türünüzü kaydettikten sonra bunu çağırmak düzenleyiciyi kaldırmalıdır:

remove_post_type_support( 'my_post_type', 'editor' );

Bu işlevler sadece global $_wp_post_type_featuresdeğişkeni manipüle eder , ancak bunu API işlevleriyle yapmak her zaman kendisiyle uğraşmaktan daha iyidir.


Sollution! Her zaman bunun sadece eski kaldırmak olduğunu düşündüm. bir alt tema üzerinden küçük resimler veya nav_menu. Çok teşekkürler!
Kaiser

1
Ah, bunu özledim. İyi bir nokta, boş dizi geçmek boş olarak değerlendirir ... Boş değerleri geçmek her zaman böyle bir karışıklıktır, karşı sezgiseldir, böylece hiçbir şey yerine varsayılan olarak ele alınır . :(
Rarst

1
@Rarst: Kukla bir özellik adı geçerseniz de işe yarayacağını düşünüyorum. Bu sadece bir dizi anahtarıdır, bu nedenle kukla verilerin eklenmesi önemli değildir. Bir keresinde0.10empty() kontrolü geçmek için bir parametre yerine kullandım .
Jan Fabry

1
@Jan Fabry evet, empty()benimkine ilk bastığımda değil . Yukarıdaki gibi - son derece sezgisel.
Rarst

Hm. Anahtarları ile çalışmaz ve bu nedenle daha sonra yükseltme ("kötü değeri bulmaya çalışın)" kukla değerleri "başka bir" benim "olabilir düşünüyorum. Neyse: ikinize de çok teşekkürler! :) Edit: değerler sadece orada olmaz, aynı zamanda anahtar / değer çiftleri ise kullanışlı olur. Ör. 'support' => array('thumbnail' => true, 'editor' => false);
kaiser

2

Özel yazı türleri oluşturmak için Özel Yazı Tipi UI eklentisini kullanıyorum. Bu eklentiyi kullanarak gelişmiş seçenekler altında post-editor'ü devre dışı bırakabilirsiniz.

Yazı Türünü Yönet -> Gelişmiş Seçenekleri Görüntüle

Eklentiye bir link: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS - Başlık alanını da devre dışı bırakmanızı sağlar :)


Yukarıda belirtildiği gibi, üç sınıf yazdım ve bu nedenle bir eklentiye geçemiyorum. Yani zaten bir eklenti kullanmayı düşünmezdim bile. Eklentiler geliştirme için (imo) veya yorum formları gibi kolay değiştirilebilir şeylerdir, yazı türleri veya sınıflandırmalar gibi temel şeyler değildir. Yine de teşekkürler!
Kaiser

1
Aslında eklentiler, özel yazı türleri de dahil olmak üzere Wordpress hakkında hemen hemen her şeyi özelleştirebilir. Şu anda çok sayıda yazı türü, meta kutuları ve çeşitli özel alanları oluşturan bir eklenti oluşturuyorum.
Manny Fleurmond

@Manny Fleurmond: Eğer paylaşacaksanız, lütfen bana bir bağlantı bırakın. Hala belki de belki de benim derslerimde gelişmiş meta-kutular için bir rutin yazmayı düşünüyorum
kaiser

0

Check out ) (register_post_type; kodeksinde. Bağımsız Değişkenler bölümünün altında, Destekler'i görene kadar aşağı kaydırın .

3.5'ten itibaren false, varsayılan (başlık ve editör) davranışı önlemek için boolean bir dizi yerine değer olarak geçirilebilir .

Veya örneğin istediğiniz değerleri ekleyerek özel yazı türünüzü istediğiniz gibi özelleştirin:

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

Dizimdeki bu desteklenen seçenekler wordpress arka ucumda görünecek.


-2

Ayrıca, editör gibi belirli öğeleri gizlemek için yönetici düzenleme sayfası için stil ayarlayabilirsiniz.

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');

Cevabınız için teşekkürler, ancak bu (a) Bağımlılıklar API'sına kayıtlı olmadığı için kaldırılamaz hale getirecek ve (b) tarayıcı geliştirici araçlarını nasıl kullanacağını bilen kişiler için erişilebilir hale getirecektir.
kaiser
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.