Понимание WordPress Custom Meta Box

В предыдущем посте мы говорили о настраиваемом поле WordPress, которое позволяет добавлять и выводить новую запись в сообщении с помощью поля «Настраиваемое поле», которое WordPress предоставляет на экране редактирования поста. Однако, если вам неудобно использовать поле настраиваемого поля (у всех нас есть свои индивидуальные предпочтения), вот альтернатива: вы можете создать мета-поле.

Метаблок – это настраиваемый блок, который мы создаем самостоятельно, который может содержать ввод или другой интерактивный интерфейс для добавления новых записей постов или страниц. Вы можете использовать мета-поле вместо поля Custom Field, чтобы сделать то же самое. Давайте посмотрим, как его создать.

Больше на Hongkiat.com:

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Создание мета-бокса

WordPress предоставляет API-функцию, называемую add_meta_box, которая позволяет сразу создавать мета-блоки. Это все в его основной форме.

function add_post_reference () {
add_meta_box (‘post-reference’, ‘Reference’, ‘referenceCallBack’, ‘post’);
}
add_action (‘add_meta_boxes’, ‘add_post_reference’);

function referenceCallBack () {
эхо “Hello World”
}

Add_meta_box принимает четыре параметра: идентификатор, заголовок мета-поля, функция обратного вызова это вызовет «Hello World» и тип сообщения, которое мы хотим отобразить. В этом случае мы назначаем новый мета-блок на странице редактирования поста (это также работает со страницами).

В разделе редактирования сообщений вы найдете новое окно, как показано ниже.

WordPress основной метабокс

Новый мета-блок, как вы можете видеть выше, появится ниже редактор WYSIWYG, Если вы хотите добавить его в боковую панель, вы можете добавить «side» после параметра post и «high», если хотите поместить его в самый верх боковой панели.

function add_post_reference () {
add_meta_box (‘post-reference’, ‘Reference’, ‘referenceCallBack’, ‘post’, ‘side’, ‘high’);
}
add_action (‘add_meta_boxes’, ‘add_post_reference’);

Теперь вы найдете его над окном публикации.

Положение метабокса WordPress

Теперь, чтобы заменить текст «Hello World» там. Давайте добавим элементы, такие как поле ввода для новой записи.

В этом примере мы добавим два поля ввода, которые состоят из одного поля для добавления имени ссылки и другого для ссылки ссылки:

function referenceCallBack ($ post) {
wp_nonce_field (‘reference_meta_box’, ‘reference_nonce’);

$ name_value = get_post_meta ($ post-> ID, ‘_post_reference_name’, true);
$ link_value = get_post_meta ($ post-> ID, ‘_post_reference_link’, true);

эхо«;
эхо«;
эхо

». «Добавить название ссылки».

«;

эхо«;
эхо«;
эхо

». «Добавить ссылку на ссылку».

«;
}

Обновите страницу редактирования сообщения, и вы увидите, что эти два ввода добавлены.

Переменные $ name_value и $ link_value будут извлекать записи из базы данных и заполнять их в полях ввода. Чтобы получить записи в базе данных, нам нужно создать функцию для этого.

Нам нужно добавить несколько строк кода, которые будут безопасно заполнять записи, добавленные через эти входные данные, в базу данных. «Безопасно» здесь означает законный и авторизованный вход (не входящий от хакеров или другого неавторизованного персонала). Чтобы сохранить запись, нам нужно будет создать новую функцию. Давайте назовем функцию: save_post_reference, вот так.

функция save_post_reference ($ post_id) {

}
add_action (‘save_post’, ‘save_post_reference’);

Как мы уже упоминали, нам нужно проверить несколько вещей в целях безопасности:

(1) Нам нужно проверить, есть ли у пользователя возможность редактировать пост.

if (! current_user_can (‘edit_post’, $ post_id)) {
возвращение;
}

(2) Мы также должны проверить, если данное время установлено.

if (! isset ($ _POST[‘reference_nonce’] )) {
возвращение;
}
if (! wp_verify_nonce ($ _POST[‘reference_nonce’], ‘reference_meta_box’)) {
возвращение;
}

(3) Затем нам нужно предотвратить автоматическое сохранение данных. Сохранение можно выполнить только после нажатия кнопки «Сохранить» или «Обновить».

если (определено (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) {
возвращение;
}

(4) Мы также должны убедиться, что наши два входа, post_reference_name и post_reference_link, установлены и готовы, прежде чем мы отправим записи.

if (! isset ($ _POST[‘post_reference_name’] ) || ! isset ($ _POST[‘post_reference_link’] )) {
возвращение;
}

(5) И в записи не должно быть никаких неожиданных символов, которые могут поставить под угрозу безопасность сайта. Чтобы проверить это, вы можете использовать встроенную функцию WordPress sanitize_text_field,

$ reference_name = sanitize_text_field ($ _POST[‘post_reference_name’] );
$ reference_link = sanitize_text_field ($ _POST[‘post_reference_link’] );

Хорошо, теперь мы готовы сохранить записи в базе данных:

update_post_meta ($ post_id, ‘_post_reference_name’, $ reference_name);
update_post_meta ($ post_id, ‘_post_reference_link’, $ reference_link);

Теперь вы можете попробовать это: ввести некоторый контент в поля ввода и нажать кнопку «Обновить», чтобы сохранить их.

WordPress метабокс финал

Вывод

Мы только что создали мета-блок, который состоит из двух входов. Вы можете дополнительно расширить поле с другими типами входов, такими как переключатель или поле выбора. Этот пример может быть очень простым, но как только вы освоите его, вы сможете использовать этот мета-блок для гораздо более сложных задач. Дайте нам знать, если вы будете использовать это и для чего вы будете его использовать.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *