Я пытаюсь создать функцию, которая позволила бы мне изменить заголовок установленного мета-блока (т. Е. Изменить заголовок мета-блока «Авторы» на «Команда» и т. Д.)
Я не хотел использовать JS или должен был сбросить исходный мета-блок и заново добавить его.
Я начал со следующего в соответствии с другим потоком, который перечислил код следующим образом:
// hook to the 'add_meta_boxes' action
add_action('add_meta_boxes', 'change_meta_box_titles');
function change_meta_box_titles($post_type, $post)) {
global $wp_meta_boxes; // array of defined meta boxes
// cycle through the array, change the titles you want
}
Я застрял на части "циклически перебирать массив и менять названия, которые вы хотите".
Каков наилучший способ сделать это? Использование foreach для цикла? Или сценарий «переключение / случай»? Я новичок в этом, кто-нибудь может привести пример, как это сделать?
Обновление: пример Стивена Харриса работает для Core Meta (спасибо!):
add_action('add_meta_boxes', 'change_meta_box_titles');
function change_meta_box_titles() {
global $wp_meta_boxes; // array of defined meta boxes
// cycle through the array, change the titles you want
$wp_meta_boxes['post']['normal']['core']['authordiv']['title']= 'Team Member';
}
Обновление: исправлено для пользовательских мета
Чтобы заставить это работать с вашими пользовательскими мета, измените вашу add_action следующим образом, чтобы она запускала ваш код заголовка изменения после добавления мета-блока:
add_action('add_meta_boxes', 'change_meta_box_titles', 999);
$wp_meta_boxes['post']['side']['core']['projectinfo']['title']= 'New Title';
но это не сработало, я что-то здесь упустил?echo '<pre>'; print_r($wp_meta_boxes); echo '</pre>'; wp_die('');
После того, как вы изменили название, чтобы увидеть, что пошло не так. Я думаю, что это не «ядро»: DЯ знаю, что это старый вопрос, но для этого есть фильтр. Вы бы добавили в плагин своей темы
functions.php
или пользовательской функции функцию, подключенную кpost_type_labels_{$post_type}
Возьмем, к примеру, что у нас есть пользовательский тип поста, который
band
мы хотим изменить, и мы хотим поменять метки избранного изображения на «Band Photo». Функция будет выглядеть примерно так:ссылка: https://developer.wordpress.org/reference/hooks/post_type_labels_post_type/
источник
Афаик, тебе лучше всего подключить функцию к хуку непосредственно перед созданием мета-блока:
источник
Ладно ... Это немного глупо, но я вроде думал, что это было умно. По сути, вы просто используете встроенные функции языка, чтобы изменить то, что вам нравится. Пока вы знаете исходное слово или слова, которые вы хотите изменить, и они были правильно вызваны в коде с чем-то вроде этого
__('text in here')
, вы можете изменить их на то, что вам нравится.Однажды я использовал его, чтобы изменить мета-поле «Выдержки» на другое имя (вместе с описанием внутри), потому что моя тема использовала его для очень маленьких фрагментов текста. Посмотри:
Оказывается, я был не единственным, кто думал об этом. Сюрприз. Вот статья, обсуждающая ту же идею , с другим методом использования gettext.
источник
Начиная с WordPress 4.4, аргумент $ screen может быть массивом, который значительно упрощает массовые добавления или изменения мета-блоков.
Следующий код меняет заголовок мета-поля «Автор» на «Редактор» на страницах, сообщениях, вложениях и всех пользовательских типах сообщений независимо от того, сколько их добавлено или когда они добавлены на ваш сайт.
источник
Это немного странно, но для тех, кому нужно простое решение CSS, используйте это:
Просто замените your-metabox-id своим собственным. :)
(примечание: я обычно добавляю admin.css через functions.php, именно там я контролирую некоторые стили wp admin)
источник