Як змінити за замовчуванням метаполе WP?


17

Мені цікаво, чи існує спосіб змінити за замовчуванням метаполе Wordpressses, наприклад, "представлене зображення" для користувацьких типів публікацій без необхідності перетягувати їх вручну?

Приклад: Приклад позиціонування Meta Box


Ви можете змінити замовлення за замовчуванням: wordpress.stackexchange.com/questions/41501/…

Відповіді:


22

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

Це видалить його з бічного стовпця та додасть його до основного стовпця. змінити postв цьому прикладі на будь-який назва вашого спеціального допису


Це здається ідеальним, ще раз дякую Міло, я спробую.
Mr.Brown

@Milo: Як ніби add_meta_box()потрібна $callbackназва функції, як я знаю ім'я функції, яку використовує WordPress? Припустимо, якщо я хочу зробити те ж саме для бічної панелі meta_box 'Категорії' (#categorydiv)?
Mayeenul Islam

5
@MayeenulIslam подивіться у файл, /wp-admin/edit-form-advanced.phpі ви побачите, куди WordPress додає всі основні мета-поля та зворотні виклики та аргументи, які він використовує. для категорій це post_categories_meta_box.
Міло

5

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

Мені подобається робити "з" wordpress (зазвичай це окупається), ніж бій, ніж зіткнення, і як Wordpress це робить так:

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

Таким чином, ви можете додати дію або фільтр для кожного нового користувача, щоб встановити налаштування користувача таким, яким ви хочете бути за замовчуванням.
1) Перетягніть і впорядкуйте сторінку, на яку ви хочете вплинути, а потім 2) подивіться в phpmyadmin на ваш user-meta для вашого ідентифікатора і подивіться, що wp там зберігається. 3) потім кодуйте нову дію користувача наступним чином, якщо користувач НЕ встановив це налаштування (щоб уникнути перезапису особистого вибору), ви можете встановити його так, як вам потрібно - зі значенням, яке ви знайшли, встановивши його вручну.

Щоб отримати уявлення про мета-ключі користувача, які ви шукаєте, перегляньте ці скріншоти: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/

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


1
Хоча мені подобається ідея цього підходу, рішення Міло здається набагато швидшим, тому я зроблю це натомість, але дякую, що знайшли час і повідомити мене про цей підхід. Я згодом визначусь із використанням цього способу. Я оцінив ваш коментар.
Mr.Brown

3
Плагін, запропонований Anmari, - це платний комерційний плагін ... і не виглядає як оновлений з серпня минулого року. Ви все ще підтримуєте цей плагін? Якщо ні, чи розглядали ви це на Github?
unfulvio

Дякую @anmari, що поділився таким підходом, дуже корисно.
Маор Баразани

0

Якщо ви хочете замовити саме ваші метабокси, ви можете скористатися цим плагіном: https://wordpress.org/plugins/post-meta-box-order/

Він відтворюється на мета-вікні-order_post користувальницької опції (таблиця wp_usermeta).

Примітка 1: цю техніку можна застосувати до будь-якого користувацького CPT, змінивши кінець прапора: meta-box-order_ [YOUR_CPT]

Примітка 2: не забудьте змінити хеш у коді плагіна, щоб застосувати ваше нове замовлення до всіх існуючих користувачів.

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