TÜM kullanıcılar ve yöneticiler için yönetici düzenleme panelleri ve meta kutuları konumlarını ve görünürlüğünü ayarlama


10

WP 3.3 kurulumum, çeşitli yayın türlerini ve Gelişmiş Özel Alanlar eklentisi (birçok metabox oluşturan) ve SEO metabox paneli, Scribu'nun Posts2Posts bağlantıları ve daha fazlası gibi diğer eklentileri içeren özelleştirilmiş düzenleme panellerini içerir.

Sorun şu ki, bu panellerin görünüm sırası oldukça rasgele (Adavanced Custom Fields bir çeşit sipariş sunuyor olsa da, her zaman işe yaramaz, çünkü diğer eklentiler buna sahip değildir ve ayrıca meta kutuyu değiştirmek isteyebilirim) pozisyonlarına göre konumlandırın).

Şimdi, Wordpress uygun haklara sahip her yönetici / kullanıcının düzenleme panellerindeki meta kutuları istediği gibi düzenlemesine izin verir. Ancak ... her yönetici kendi ayarını yapmak zorundadır !! Varsayılan / sabit bir sipariş hazırlamanın veya superadmin'in veya özellikle bir yöneticinin HERKESİN panellerinin konumunu ayarlamasına izin vermenin bir yolu yok mu?

En az 4 yöneticim ve birkaç editörüm var / yazarım ... Panellerini hesaplarının her biri ile giriş yapmak zorunda kaldım ... mantıklı değil, zaman alıcı ve wordpress meraklısı olmayan kullanıcılar için kafa karıştırıcı .

Davamda yardımcı olabilecek herhangi bir eklenti veya kod snippet'i var mı?

teşekkür ederim


Birisi 1 yıl önce wp forumlarında aynı soruları sordu, konusu cevapsız kaldı, çözülmedi ve bazı yönetici wordpress.org/support/topic/…
unfulvio 12:12

Yanıtlar:


7

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');
}

Yukarıdaki cevap aşağıdaki iş parçacığından: WP meta kutularının varsayılan konumunu nasıl değiştirebilirim?

GÜNCELLEME

Ana hayal kırıklığı tamamen mevcut meta kutu miktarı ise ve her kullanıcının tüm kutulara ihtiyacı olduğunu düşünmüyorsanız, function.php dosyasına eklenen aşağıdaki kodu kullanarak bunları daha düşük kullanıcı rollerinden veya tüm rollerden gizleyebilirsiniz. NOT - Bu yöntem meta kutuyu gizler ve devre dışı bırakmaz veya kaldırmaz.

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> #wptotwitter_div, wpseo_meta, #al2fb_meta, #misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section, .al2fb_post_submit, #slugdiv, #edit-slug-box, #screen-options-link-wrap { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

//Hide Post Page Options from ALL users
function hide_all_post_page_options() {
global $post;
$hide_all_post_options = "<style type=\"text/css\"> #taxonomy-category li.hide-if-no-js, #commentstatusdiv, #wypiekacz_sectionid, #postexcerpt, #trackbacksdiv, #postcustom, #yarpp_relatedposts { display: none !important; }</style>";
print($hide_all_post_options);
}
add_action( 'admin_head', 'hide_all_post_page_options'  );

Temel olarak, yalnızca virgülle ayrılmış div kimliğini veya sınıfı girmeniz gerekir. Her türlü meta kutunun ve alanın gizlenebileceğini göstermek için oradan ayrıldım.

#wptotwitter_div - WP to Twitter plugin
#wpseo_meta - Wordpress SEO by Yoastplugin
#al2fb_meta, .al2fb_post_submit - Add Link to Facebookplugin
#misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section - Default Wordpress Publish Status and Visibility
#slugdiv, #edit-slug-box - The post slug
#screen-options-link-wrap - The "Screen Options" tab at the top of the page
#taxonomy-category li.hide-if-no-js - The "Most Used" categories tab
#commentstatusdiv - The comments on the post
#wypiekacz_sectionid - Wypiekacz plugin
#postexcerpt - Post excerpt
#trackbacksdiv - Trackbacks
#postcustom - Custom post fields
#yarpp_relatedposts - Yet Another Related Posts Plugin

(Örnekleri "kod" a koydum çünkü SE bir başlığı temsil etmek için # kullanıyor)

Bunu sana atacağımı sanıyordum, çünkü senin gibi, tüm meta kutularından son derece hayal kırıklığına uğradım, ama nihayetinde istenmeyen kutuların sayısının çok fazla olduğunu düşünüyorum. Web sitemdeki bir "yazar" için artık çok basitleştirilmiş: Başlık, İçerik, taslak olarak kaydet, şimdi yayınla veya gönderilecek zaman planlaması, etiketler, kategoriler ve öne çıkan resim ... Hiç karmaşa yok.


Bu benim sorunum çözmez, bu tüm kullanıcılara benim wysiwyg ayarları kopyalama yapmak istiyorum (bu yüzden panellerin görünümünü bir kez ve herkes için ayarlamak); nedeni: bazı eklentiler kendi meta kutularını ekler; Ayrıca, farklı yazı türleri için meta kutuları buna göre yerleştirmek istiyorum. Add_meta_box yalnızca normal / yüksek / düşük ... 'e sahip ve yardımcı olmayan birçok meta kutu var. Gelişmiş özel alanların en azından bir sipariş numarası vardır, ancak diğer meta kutuların varlığında iyi çalışmaz. Bunu yapmanın en iyi yolu wysiwyg olurdu ...
unfulvio

Eklentiler tarafından oluşturulan tüm ek meta kutuları kullanıyor ve ihtiyacınız var mı? Soruyorum, çünkü bana göre, tüm gereksiz meta kutular beni her zaman sinirlendiriyor. Aslında sizin durumunuzsa, yukarıda belirli bir kullanıcı rolü için gerekli olmayan kutuları gizlerseniz bir UPDATE yaptım, sorununuz ortadan kaldırılabilir ... Kesinlikle benim için yaptım!
Travis Pflanz

Neden meta kutuları, stil ile gizlemek yerine kullanıcı tarafından kaldırmıyorsunuz?
Stephen Harris

Kaldırdığım her şey bir meta kutu değil, bazıları meta kutuların parçaları, bu yüzden iki yerine sadece bir işlev kullanacağımı düşündüm.
Travis Pflanz

Travis, buna daha fazlasını harcadığın için teşekkürler. Ancak CSS çözümü, meta kutuları taşıma sorununu çözmez (önceki filtreleme ve yeniden konumlandırma çözümünüz kısmen çözer). Daha önce de belirttiğim gibi, kurulumumda özel meta kutuları olan birçok özel yazı tipi var ve orada olmaları gerekiyor. Gizlemek istediğim çok az şey var (ancak bazı yöneticiler için yararlı olacaklar, bu yüzden onları kalıcı olarak kaldırmak istemiyorum ve CSS ile gizlemek iyi bir hareket değil). Bu sorun için henüz tatmin edici bir çözüm bulamadım. Çaba için yine de teşekkürler.
unfulvio

1

Yönetici eklentisini incelediniz mi?

Kullanıcı rolü başına meta kutuları etkinleştirmenizi / devre dışı bırakmanızı ve konumu yapılandırmanızı sağlar. Bunu yapılandırmak biraz zaman alır ve belgeler, yer yer sivilceli de olsa iyi, ancak açıkladığınız şeyi işleyebilmelidir.


Bu eklenti yok değil için "yapılandırmak pozisyonunu", sadece görünürlük sizi tanır. Çok güzel bir eklenti, tho ..
frnhr

Eklentiye bu kadar yakından bakmadığımı itiraf edeceğim, ancak birini manipüle edebilirse, muhtemelen bazı kod eklemeleri yoluyla diğer manipüle etmek için yapılabilir. Güzel bir başlangıç ​​noktası yapar.
JCL1178
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.