Налаштування положень та панелей метабокса для редагування адміністратора та видимість для ВСІХ користувачів та адміністраторів


10

Моя настройка WP 3.3 включає декілька типів публікацій та налаштовані панелі редагування з додатком «Розширені користувацькі поля» (який створює багато метабоксів) та іншими плагінами, такими як панель метабокса SEO, підключення до Scribu's Posts2Posts та багато іншого.

Проблема полягає в тому, що порядок появи цих панелей часто буває досить випадковим (навіть якщо Adavanced Custom Fields пропонує якесь упорядкування, але воно не завжди працює, оскільки інших плагінів його немає, і, крім того, я можу захотіти змінити метабокс посади відповідно до типів постів).

Тепер Wordpress дозволяє кожному адміністратору / користувачеві з належними правами впорядкувати метабокси в панелях редагування так, як він хоче. Однак ... кожен адміністратор повинен влаштувати своє !! Чи не існує способу підготувати замовлення за замовчуванням / фіксованим замовленням або дозволити superadmin або одному адміністратору, зокрема, встановити положення панелей для ВСЕГО?

У мене є щонайменше 4 адміністраторів та декілька редакторів / авторів ... це не має сенсу встановлювати їхні панелі, які входять у систему EACH своїх облікових записів ... це нерозумно і забирає багато часу та заплутано для кмітливих користувачів, що не користуються wordpress. .

Чи є якийсь плагін або фрагмент коду, який міг би допомогти моєму випадку?

Дякую тобі


хтось запитував ті ж запитання на форумах wp 1 рік тому, його тема залишилася без відповідей, не вирішена, і хтось адміністратор закрив нитку wordpress.org/support/topic/…
unfulvio

Відповіді:


7

Ви можете видалити мета-поля за замовчуванням за допомогою Remove_meta_box та повторно додати їх у інше положення за допомогою 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');
}

Відповідь, наведена вище, випливає з наступного потоку: Як змінити стандартне положення метаполев WP?

ОНОВЛЕННЯ

Якщо основна роздратованість - це лише кількість доступних мета-ящиків, і ви не вважаєте, що кожному користувачеві потрібні всі вікна, ви можете сховати їх від нижчих ролей користувача або всіх ролей, використовуючи наступний код, доданий у файл function.php. ПРИМІТКА. Цей метод просто приховує мета-вікно і не вимикає або видаляє їх.

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

В основному, вам просто потрібно ввести діловий ідентифікатор або клас, розділені комою. Я просто залишив там своє, щоб показати, що всілякі метаполе і області можна приховати.

#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

(Я ставлю приклади в "код", оскільки SE використовує # для представлення заголовка)

Я думав, що викину це вам, тому що, як і ви, я дуже розчарувався у всіх метабоксах, але в кінцевому підсумку, я думаю, це була велика кількість небажаних коробок. Що стосується "автора" на моєму веб-сайті, він зараз дуже впорядкований: Назва, Зміст, зберегти як чернетку, опублікувати зараз або розклад, який потрібно розмістити, теги, категорії та зображене зображення ... Нічого не захаращувати.


Це не вирішує мою проблему, я б хотів зробити це копіювання моїх налаштувань wysiwyg для всіх користувачів (тому я встановив зовнішній вигляд панелей раз і назавжди); причина: деякі плагіни додають власні метабокси; також для різних типів публікацій я хочу розмістити метабокси відповідно. Add_meta_box має лише нормальний / високий / низький рівень ... з багатьма метабоксами, що не допомагає. Розширені спеціальні поля принаймні мають номер замовлення, але він не працює добре за наявності інших метаполев. Найкращий спосіб зробити це було б wysiwyg ...
unfulvio

Чи використовуєте ви та потребуєте всіх додаткових метаполев, створених плагінами? Я прошу, бо для мене всі непотрібні мета-коробки - це те, що мене завжди засмучує. Якщо це насправді ваш випадок, я зробив ОНОВЛЕННЯ вище, можливо, якщо ви просто приховете поля, які не потрібні для певних ролей користувача, вашу проблему можна буде усунути ... Це впевнено зробило для мене!
Тревіс Пфланц

Чому ви не видаляєте метабокси користувачем, а не просто приховуєте їх за допомогою стилів?
Стівен Харріс

Не все, що я виймаю, це метабокс, деякі - це метабокси, тож я зрозумів, що буду використовувати лише одну функцію, а не дві.
Травіс Пфланц

Тревіс, дякую, що витратили на це більше. Однак рішення CSS не вирішує проблему переміщення метабокс (попереднє рішення фільтрації та перестановки частково робить). Як я вже згадував раніше, у моїй установці є багато спеціальних типів публікацій зі спеціальними метабоксами, які я створив, і вони повинні бути там. Насправді дуже мало я хочу приховати (але вони будуть корисні деяким адміністраторам, тому я не хочу їх видаляти назавжди і ховати за CSS - це не дуже вдалий хід). Я ще не знайшов задовільного рішення цього питання. Все одно дякую за зусилля.
unfulvio

1

Ви заглянули у плагін Adminimize ?

Це дозволяє активувати / деактивувати метабокси на роль користувача, а також налаштувати позицію. Налаштувати його потрібно трохи, і документація пристойна, хоча місцями плямиста, але вона повинна мати можливість обробляти те, що ви описуєте.


Цей плагін не дозволяє "налаштувати позицію", лише видимість. Це дуже приємний плагін, тому ..
frnhr

Я зізнаюся, що не передивився плагіну, але якщо він може маніпулювати одним, він, ймовірно, може бути зроблений для маніпулювання іншим за допомогою деяких доповнень коду. Створює приємну стартову точку.
JCL1178
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.