Impostazione dei pannelli di modifica dell'amministratore e delle posizioni e visibilità dei metabox per TUTTI gli utenti e gli amministratori


10

La mia configurazione di WP 3.3 prevede diversi tipi di post e pannelli di modifica personalizzati con plug-in Advanced Custom Fields (che crea molti metabox) e altri plug-in come il pannello metabox SEO, le connessioni Posts2Posts di Scribu e altro ancora.

Il problema è che l'ordine di apparizione di questi pannelli è spesso abbastanza casuale (anche se Adavanced Custom Fields offre una sorta di ordinamento, ma non sempre funziona, poiché altri plugin non ce l'hanno e inoltre potrei voler cambiare metabox posizioni in base ai tipi di posta).

Ora Wordpress consente a ciascun amministratore / utente con i diritti necessari di disporre i metabox nei pannelli di modifica nel modo desiderato. Tuttavia ... ogni amministratore deve organizzare il proprio !! Non esiste un modo per preparare un ordinamento predefinito / fisso o consentire a superadmin o ad un amministratore in particolare di impostare la posizione dei pannelli per TUTTI?

Ho almeno 4 amministratori e pochi editor / autori ... non ha senso impostare i loro pannelli accedendo con OGNI loro account ... è stupido e richiede tempo, e confonde per gli utenti esperti non wordpress .

Esistono plug-in o frammenti di codice che potrebbero aiutare il mio caso?

grazie


qualcuno ha fatto le stesse domande sui forum di wp 1 anno fa, il suo argomento è stato lasciato senza risposte, non risolto e alcuni amministratori hanno chiuso il thread wordpress.org/support/topic/…
unfulvio

Risposte:


7

Puoi rimuovere le meta box predefinite con remove_meta_box e aggiungerle nuovamente in una posizione diversa con add_meta_box:

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

La risposta sopra è dal seguente thread: Come modificare la posizione predefinita delle meta box WP?

AGGIORNARE

Se la frustrazione principale è puramente la quantità di meta-box disponibili e non pensi che ogni utente abbia bisogno di tutte le box, puoi nasconderle da ruoli utente inferiori o da tutti i ruoli usando il seguente codice aggiunto al file Functions.php. NOTA: questo metodo nasconde semplicemente la meta-box e non le disattiva o rimuove.

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

Fondamentalmente, devi solo inserire l'id div o la classe separati da una virgola. Ho appena lasciato il mio lì dentro per mostrare che tutti i tipi di meta box e aree possono essere nascoste.

#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

(Ho messo gli esempi in "codice" perché SE usa # per rappresentare un'intestazione)

Ho pensato di buttartelo via perché, come te, sono stato estremamente frustrato con tutte le meta-scatole, ma alla fine penso che sia il numero assoluto di scatole indesiderate. Per un "autore" sul mio sito Web, ora è molto semplificato: titolo, contenuto, salva come bozza, pubblica ora o programma per essere pubblicato, tag, categorie e immagine in primo piano ... Nessun disordine.


Ciò non risolve il mio problema, mi piacerebbe farlo copiando le mie impostazioni wysiwyg per tutti gli utenti (quindi ho impostato l'aspetto dei pannelli una volta per tutte); motivo: alcuni plugin aggiungono i loro metabox; inoltre, per diversi tipi di post voglio posizionare i metabox di conseguenza. Add_meta_box ha solo normale / alto / basso ... con molti molti metabox che non aiutano. I campi personalizzati avanzati hanno almeno un numero di ordinazione, ma non funzionano bene in presenza di altri metabox. Il modo migliore per farlo sarebbe wysiwyg ...
unfulvio

Utilizzi e hai bisogno di tutte le meta box aggiuntive create dai plugin? Lo chiedo perché, per me, tutte le meta box non necessarie sono ciò che mi frustra sempre. Se questo è in realtà il tuo caso, ho fatto un AGGIORNAMENTO sopra che forse se nascondi semplicemente le caselle che non sono necessarie per determinati ruoli utente, il tuo problema potrebbe essere eliminato ... Lo ha fatto per me!
Travis Pflanz,

Perché non rimuovi i metabox dall'utente piuttosto che nasconderli semplicemente con uno stile?
Stephen Harris,

Non tutto ciò che rimuovo è una meta box, alcune sono parti di meta box, quindi ho pensato che avrei usato solo una funzione, anziché due.
Travis Pflanz,

Travis, grazie per aver speso di più in questo. Tuttavia, la soluzione CSS non risolve il problema dello spostamento dei metabox (la tua precedente soluzione di filtraggio e riposizionamento lo fa parzialmente). Come accennato in precedenza, la mia configurazione ha molti tipi di post personalizzati con metabox speciali che ho creato e devono essere lì. In realtà ci sono pochissimi che voglio nascondere (ma saranno utili per alcuni amministratori, quindi non voglio rimuoverli permanentemente e nascondersi dai CSS non è una buona mossa). Devo ancora trovare una soluzione soddisfacente per questo problema. Grazie comunque per lo sforzo.
unfulvio,

1

Hai esaminato il plug- in Adminimize ?

Ti consente di attivare / disattivare le meta-box per ruolo utente e anche di configurare la posizione. Ci vuole un po 'per configurarlo e la documentazione è decente, anche se in alcuni punti, ma dovrebbe essere in grado di gestire ciò che stai descrivendo.


Quel plugin non ti permette di "configurare la posizione", ma solo la visibilità. È un plug-in molto bello, però ...
dal

Confesserò di non aver guardato così da vicino il plugin ma se può manipolarne uno, probabilmente può essere fatto per manipolare l'altro tramite alcune aggiunte di codice. È un bel punto di partenza.
JCL1178,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.