CPT UI и пользовательская таблица базы данных

Вопрос или проблема

Я новичок в разработке на WordPress. Я создаю плагин и у меня есть вопрос. У меня есть пользовательская таблица в базе данных. Есть ли способ создать пользовательский тип записи, связанный с этой таблицей? Кстати, я использую CPT UI. Как мне подойти к этой проблеме? Есть идеи?

Заранее спасибо

Нет, пользовательский тип записи все еще является записью в таблице постов, вы не можете его связать, потому что это не связь. Это столбец в таблице.

Если вы хотите иметь тот же интерфейс, что и у записей, но для пользовательской таблицы, вам придется реализовать это самостоятельно:

  • с помощью страницы настроек
  • пользовательский SQL код
  • пользовательская реализация WP_List_Table, создайте класс, который наследует от WP_List_Table и реализуйте методы, чтобы он загружал ваши строки из базы данных
  • Другая пользовательская страница настроек, которая будет выполнять функции нового/добавить/редактировать экрана, реализованная с нуля

Достаточно сказать, что эта задача слишком широка, чтобы ответить на нее в одном вопросе/ответе, и вам придется столкнуться с большим количеством ручной работы, включая создание постраничной навигации с нуля и т.д.

Было бы проще использовать настоящий пользовательский тип записи или создать индивидуальный интерфейс. Моя рекомендация – интерфейс на базе JS с использованием REST-эндпоинтов.

Ответ или решение

Создание кастомного типа записей в WordPress с использованием внешней таблицы базы данных может представлять определенные сложности. Давайте разберем этот процесс подробно и рассмотрим потенциальные пути его осуществления.

Понимание кастомных типов записей и таблиц базы данных

Кастомные типы записей в WordPress изначально проектируются как записи внутри таблицы wp_posts. Это значит, что они не могут быть напрямую связаны с пользовательскими таблицами базы данных. Тем не менее, существует ряд подходов, которые вы можете использовать для интеграции данных из своей кастомной таблицы с интерфейсом WordPress.

Подходы к решению проблемы

  1. Создание отдельного интерфейса для работы с кастомной таблицей:
    Чтобы работать с данными из вашей таблицы, вы можете создать собственный административный интерфейс. Это включает в себя:

    • Кастомная страница настроек: Используйте API добавления страниц WordPress, чтобы создать новую страницу в административной панели, на которой будут отображаться и управляться данные из вашей таблицы.

    • Кастомный SQL-код: Для работы с вашей таблицей вам потребуется использовать функции работы с базой данных WordPress, такие как global $wpdb, чтобы выполнять необходимые запросы (SELECT, INSERT, UPDATE, DELETE) к вашей кастомной таблице.

    • Класс на основе WP_List_Table: Создайте класс, унаследованный от WP_List_Table, который позволит вам загружать и отображать строки вашей базы данных. В этом классе вам нужно будет переопределить методы для функциональности, такой как пагинация и сортировка.

  2. Кастомные страницы для добавления/редактирования записей:
    Вам потребуется разработать отдельный интерфейс для создания и редактирования записей. Эти страницы также будут использовать ваш кастомный SQL-код для взаимодействия с данными в таблице.

  3. Реализация REST API:
    Если вы хотите интегрировать современные подходы, рассмотрите возможность создания RESTful API для вашей таблицы. Это позволит вам использовать JavaScript для динамичного взаимодействия с данными. Например, вы можете создать AJAX-запросы для добавления, обновления или удаления записей, что упростит интерфейс пользователя и сделает его более интерактивным.

Рекомендации

  • Используйте кастомные типы записей: Если ваши данные могут быть представлены в формате записей, подумайте о том, чтобы использовать стандартный функционал WordPress, создавая кастомные посты. Это упростит вашу задачу, так как вам не придется разрабатывать большую часть функционала с нуля.

  • Изучите код других плагинов: Многие популярные плагины предлагают хороший пример интеграции кастомных типов записей и пользовательских таблиц. Исследование их реализаций может дать вам концептуальное понимание и ускорить процесс разработки.

Заключение

Хотя интеграция кастомных типов записей с пользовательскими таблицами базы данных в WordPress требует значительных усилий, с правильным подходом и инструментами, такими как WP_List_Table, вы сможете создать эффективное решение. Тем не менее, если ваши требования позволяют, использование стандартных возможностей WordPress может значительно упростить разработку и сократить время реализации.

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

Капча загружается...