Мне интересно, есть ли способ изменить положение мета-блоков Wordpresses по умолчанию, таких как «избранные изображения» для пользовательских типов записей, не перетаскивая их вручную?
Пример:
Мне интересно, есть ли способ изменить положение мета-блоков Wordpresses по умолчанию, таких как «избранные изображения» для пользовательских типов записей, не перетаскивая их вручную?
Пример:
Ответы:
Вы можете удалить мета-блоки по умолчанию с помощью 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
в этом примере измените на любой другой тип вашего поста.
add_meta_box()
нужно $callback
имя функции, откуда я знаю имя функции, используемой WordPress? Предположим, я хочу сделать то же самое для боковой панели meta_box 'Categories' (#categorydiv)?
/wp-admin/edit-form-advanced.php
и вы увидите, куда WordPress добавляет все основные мета-блоки, а также используемые им обратные вызовы и аргументы. для категорий это так post_categories_meta_box
.
Я тоже боролся с этим. Я действительно не нашел чистого способа переопределить макет / порядок - особенно потому, что пользователи могут изменить его, когда / если они перетаскивают поля.
Мне нравится делать вещи «с» WordPress (это обычно окупается), чем сталкиваются с этим и как WordPress делает это следующим образом:
WordPress сохраняет перетаскиваемые позиции для каждого пользователя на экране, и есть целый набор пользовательских мета-ключей, которые он использует в зависимости от того, на какой странице / экране он находится.
Таким образом, вы можете добавить действие или фильтр для каждого нового пользователя, чтобы установить настройки пользователя так, как вы хотите, чтобы по умолчанию.
1) Перетащите и упорядочите страницу, на которую вы хотите повлиять, затем 2) посмотрите в phpmyadmin вашу мета пользователя для вашего идентификатора и посмотрите, что там сохранил wp. 3) затем закодируйте новое действие пользователя следующим образом, если у пользователя НЕ установлена эта настройка (чтобы не перезаписывать личный выбор), вы можете установить ее так, как хотите - со значением, которое вы нашли при ручной настройке.
Чтобы получить представление о мета-ключах мета-пользователя, которые вы ищете, см. Эти скриншоты: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(В итоге я написал общий плагин, чтобы администратор мог определить предпочтительный макет для всех пользователей для всех видов страниц / экранов. Затем они могли изменить это, например, по мере того, как стали более опытными. Также он не сломается при изменении wp Плагин вещей как я просто выбирает пользовательские значения шаблона, он даже не пытается установить значение в жестко заданное значение.)
Если вы хотите точно заказать ваши мета-блоки, вы можете использовать этот плагин: https://wordpress.org/plugins/post-meta-box-order/
Он играет на мета-поле-порядок_пост пользовательской опции (таблица wp_usermeta).
Примечание 1: этот метод можно применить к любому пользовательскому CPT, изменив конец флага: meta-box-order_ [YOUR_CPT]
Примечание 2: не забудьте изменить хэш в коде плагина, чтобы применить ваш новый порядок ко всем существующим пользователям.