Шаг 5: Реализация функциональности создания, редактирования и удаления записей базы знаний
В этом шаге мы реализуем функции для создания, редактирования и удаления записей базы знаний. Мы будем использовать стандартные возможности WordPress для работы с записями и метаданными.
- Создай новый файл
post-management.php
в папкеincludes
плагина. - Открой файл
post-management.php
и добавь следующий код:
<?php
function akb_save_post_meta( $post_id ) {
if ( isset( $_POST['akb_meta_box_nonce'] ) && wp_verify_nonce( $_POST['akb_meta_box_nonce'], 'akb_save_post_meta' ) ) {
if ( isset( $_POST['akb_post_meta'] ) ) {
$post_meta = sanitize_text_field( $_POST['akb_post_meta'] );
update_post_meta( $post_id, 'akb_post_meta', $post_meta );
}
}
}
add_action( 'save_post_knowledge_base', 'akb_save_post_meta' );
function akb_add_post_meta_box() {
add_meta_box(
'akb_post_meta_box',
esc_html__( 'Additional Information', 'admin-knowledge-base' ),
'akb_render_post_meta_box',
'knowledge_base',
'normal',
'default'
);
}
add_action( 'add_meta_boxes_knowledge_base', 'akb_add_post_meta_box' );
function akb_render_post_meta_box( $post ) {
$post_meta = get_post_meta( $post->ID, 'akb_post_meta', true );
wp_nonce_field( 'akb_save_post_meta', 'akb_meta_box_nonce' );
?>
<label for="akb_post_meta"><?php esc_html_e( 'Additional Information', 'admin-knowledge-base' ); ?></label>
<textarea id="akb_post_meta" name="akb_post_meta" rows="4" cols="50"><?php echo esc_textarea( $post_meta ); ?></textarea>
<?php
}
- Давай разберем основные части этого кода:
akb_save_post_meta()
: Функция для сохранения метаданных записи при ее создании или обновлении. Она проверяет наличие и валидность nonce, а затем сохраняет значение метаданных, если оно присутствует.akb_add_post_meta_box()
: Функция для добавления метабокса с дополнительной информацией на страницу редактирования записи базы знаний. Она использует функциюadd_meta_box()
для регистрации метабокса.akb_render_post_meta_box()
: Функция для отображения содержимого метабокса на странице редактирования записи. Она получает текущие значения метаданных и выводит текстовое поле для их редактирования.
- Сохрани файл
post-management.php
. - Открой главный файл плагина
admin-knowledge-base.php
и добавь следующий код в конце файла:
require_once plugin_dir_path( __FILE__ ) . 'includes/post-management.php';
Теперь мы добавили возможность создания, редактирования и удаления записей базы знаний. При создании или редактировании записи администраторы могут ввести дополнительную информацию в метабокс, которая будет сохранена как метаданные записи.
На следующем шаге мы реализуем проверки безопасности и разграничение доступа для плагина.