2010-06-06 6 views
2

В настоящее время я работаю над плагином wordpress 2.9.2 (мой первый), который создает дополнительные пользовательские поля, которые позже будут считаны из шаблона. Плагин добавляет дополнительный мета-ящик к экрану «Редактировать сообщение», который отвечает за управление этими значениями.Фильтрация пользовательских полей на странице администратора Wordpress

Моя проблема заключается в том, что пользовательские поля, созданные плагином, также отображаются в поле «Пользовательские поля». В идеале я хотел бы, чтобы пользовательские поля, созданные плагином, управлялись отдельно от любых других настраиваемых полей для того же поста/страницы.

Есть ли способ, чтобы я мог фильтровать поля, специфичные для моего плагина, чтобы они не отображались в поле «Пользовательские поля»? Мне еще нужно найти какое-либо действие или фильтр, которые позволят мне захватить и обработать эти значения, прежде чем они будут отображаться в «Редактировать сообщение».

ответ

1

Если вы заглянете внутрь функции _list_meta_row() (около строки 2500 в wp-admin/includes/template.php), вы увидите, что она пропускает метатет пост, который является сериализованным массивом или объектом.

Итак, если вы можете найти подходящий для хранения метаданных плагинов как массив или объект, он не должен отображаться в поле «Пользовательские поля».

+0

извиняется за (очень) поздний ответ. Метод, описанный выше, действительно исключает массив/объект из списка каждого настраиваемого поля для этой записи, хотя он все еще оставляет ключ в раскрывающемся списке в нижней части раздела «Пользовательские поля». Честно говоря, я готов жить с этим. Благодаря! – Kyril

+0

Я просто взглянул еще раз - вы * можете * скрыть ключ тоже. Префикс его с символом подчеркивания (который указывает «закрытый» ключ), и он не будет показывать (~ строка 2530 в 'wp-admin/includes/template.php') – TheDeadMedic

+0

Спасибо за эти ответы и комментарии. Я не могу поверить, что нет крюка фильтра или подобного. Угадайте, нет. – Till

2

Кроме того, если вы префикс своих собственных полей и подчеркивания «_», он будет скрыт из раздела пользовательских полей.

Кроме того, ознакомьтесь с моим WPalchemy Meta Box PHP Class, который поможет вам легко создавать мета-боксы.

Смежные вопросы