WP meta kutularının varsayılan konumu nasıl değiştirilir?


Yanıtlar:


22

Remove_meta_box ile varsayılan meta kutuları kaldırabilir ve add_meta_box ile farklı bir konuma yeniden ekleyebilirsiniz:

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

Bu, onu yan sütundan kaldıracak ve ana sütuna ekleyecektir. postbu örnekte özel yayın türünüzün adı ne olursa olsun değiştirin .


Bu ideal görünüyor, tekrar teşekkürler Milo deneyeceğim.
Mr.Brown

@Milo: add_meta_box()Bir $callbackişlev adına ihtiyaç duyuyormuş gibi , WordPress tarafından kullanılan işlevin adını nasıl bilebilirim? Aynı şeyi kenar çubuğu meta_box 'Kategoriler' (#categorydiv) için de yapmak istiyorsam varsayalım?
Mayeenul Islam

5
@MayeenulIslam dosyaya /wp-admin/edit-form-advanced.phpbakın ve WordPress'in tüm temel meta kutularını ve kullandığı geri çağrıları ve argümanları nereye eklediğini göreceksiniz. kategoriler için öyle post_categories_meta_box.
Milo

5

Ben de bununla mücadele ettim. Düzeni / düzeni yeniden tanımlamak için gerçekten temiz bir yol bulamadım - özellikle kullanıcılar kutuları ne zaman / sürüklerse değiştirilebildiğinden.

Ben wordpress 'ile şeyler yapmak istiyorum (genellikle işe yarıyor), onunla çatışma ve wordpress yaptığı gibi aşağıdaki gibi sıçan:

wordpress ekran başına kullanıcı başına sürüklenen konumları depolar ve açık olduğu sayfaya / ekrana bağlı olarak kullandığı bir grup kullanıcı meta anahtarı vardır.

Böylece, her yeni kullanıcı için kullanıcı ayarını varsayılanın olmasını istediğiniz şekilde ayarlamak üzere bir eylem veya filtre ekleyebilirsiniz.
1) Etkilemek istediğiniz sayfayı sürükleyin ve düzenleyin, ardından 2) kimliğiniz için kullanıcı metalarınıza phpmyadmin'e bakın ve wp'nin orada ne sakladığını görün. 3) daha sonra, bir kullanıcı bu ayarı önceden ayarlamamışsa (kişisel bir seçimin üzerine yazmaktan kaçınmak için) yeni kullanıcı eylemini aşağıdaki şekilde kodlayın, manuel olarak ayarladığınız değerle istediğiniz şekilde ayarlayabilirsiniz.

Aradığınız kullanıcı-meta metakeyleri hakkında fikir edinmek için şu ekran görüntülerine bakın: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/

(Ben yönetici olarak her türlü sayfa / ekran için tüm kullanıcılar için benim tercih edilen düzeni tanımlamak böylece genel bir eklenti yazma sona erdi. Daha sonra örneğin daha yetkin hale geldikçe bunu değiştirebilir. Ayrıca wp değiştiğinde kırılmaz benim eklentim gibi şeyler sadece şablon kullanıcı değerlerini alır, değeri sabit kodlu bir değere ayarlamaya bile çalışmaz.)


1
Bu yaklaşımın arkasındaki fikri sevmeme rağmen, Milo'nun çözümü çok daha hızlı görünüyor, bu yüzden bunun yerine bir şans vereceğim, ama bu yaklaşım hakkında beni bilgilendirmek için zaman ayırdığınız için teşekkür ederim. Daha sonra bu şekilde kullanmaya çalışacağım. Yorumunu 1'ledim.
Mr.Brown

3
Anmari tarafından önerilen eklenti ücretli bir ticari eklentidir ... ve geçen yılın Ağustos ayından beri güncellenmiş gibi görünmüyor. Hala bu eklentiyi koruyor musunuz? Değilse, Github'da paylaşmayı düşündünüz mü?
unfulvio

@Anmari bu yaklaşımı paylaştığınız için teşekkürler, gerçekten yararlı.
Maor Barazany

0

Tam olarak meta kutularınızı sipariş etmek istiyorsanız, şu eklentiyi kullanabilirsiniz: https://wordpress.org/plugins/post-meta-box-order/

Kullanıcı seçeneğinin meta-box-order_post'unda (wp_usermeta tablosu) oynatılır.

Not 1: bu teknik, bayrağın sonu değiştirilerek herhangi bir özel CPT'ye uygulanabilir: meta-box-order_ [YOUR_CPT]

Not 2: Yeni siparişinizi mevcut tüm kullanıcılara uygulamak için eklentinin kodundaki karmayı değiştirmeyi unutmayın.

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.