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


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.