#php #wordpress
#php #wordpress
Вопрос:
Я все еще пытаюсь научиться создавать комплексный плагин в WordPress, и у меня возникают проблемы с мета-блоками.
Если это возможно, я хотел бы иметь несколько полей в одном метабоксе, как по эстетическим причинам, так и для того, чтобы я не писал новую функцию обратного вызова для каждого отдельного метабокса.
Возможно ли это?
Вот мой текущий код (без учета регистрации типа post и функции сохранения).
add_action( 'plugins_loaded', 'ALCI_member_setup' );
function ALCI_member_setup() {
add_action( 'add_meta_boxes', 'ALCI_members_create_metaboxes' );
}
function ALCI_members_create_metaboxes()
{
add_meta_box('ALCI_member_qualification', 'Member Qualifications', 'ALCI_member_qualification', 'ALCI-members', 'normal', 'high');
}
function ALCI_member_qualification() {
global $post;
echo '<input type="hidden" name="ALCI_member_qualification_noncename" id="ALCI_member_qualification_noncename" value="' .
wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
$qualification = get_post_meta($post->ID, 'ALCI_member_qualification', true);
echo '<p>Qualifications that appear beside the members name, e.g. BSc (Hons) IBCLC</p>
<input type="text" name="ALCI_member_qualification" value="' . $qualification . '" class="widefat" />';
}
Ответ №1:
Да, это абсолютно возможно.
Просто добавьте остальные ваши meta поля в ALCI_member_qualification()
, а затем добавьте функции сохранения для них, и это должно работать точно так же.
Комментарии:
1. Спасибо, так мне понадобится отдельная функция сохранения для каждого из них, да?
2. на самом деле я получил функцию сохранения для работы с циклом for, проходящим через каждое поле ввода, спасибо