Как интегрировать пользовательскую таблицу базы данных в Wordpress и использовать функции Wordpress

8

Я нахожусь Wordpress 3.0.4и мне трудно решить, в какую сторону идти. Вот моя проблема:

У меня есть mysqlтаблица базы данных widgets, около 10, propertiesкак идентификатор, размер, цвет и т. Д.

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

Предпочтительно, я хотел бы иметь возможность изменять пользовательский шаблон таким образом, чтобы я мог изменить положение каждого свойства на странице (поэтому, возможно, я бы хотел разместить, например, свойство size в верхней части страницы слева позже, я мог бы хотеть поместить это в правое основание).

Как лучше всего хранить widgets, извлекать их, используя как можно больше Wordpressвстроенных функций, и как мне получить этот гибкий макет?

Я уже писал свои собственные плагины, поэтому у меня есть больше, чем просто базовые знания Wordpress/PHP/MySQL.

JanWillem
источник
Пожалуйста, проверьте этот плагин wordpress.org/extend/plugins/custom-tables , это сэкономит мне много работы, просто определите поля таблицы и затем импортируйте ваши данные.

Ответы:

8

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

Если бы это был мой проект, я бы удалил пользовательскую таблицу, которая у вас есть, настроил пользовательский тип публикации для ваших «виджетов», добавил бы все ваши существующие виджеты как обычный контент WP, и использовал бы стандартные функции и шаблоны WordPress для запроса и отображения их. ,

Это краткосрочные инвестиции (если у вас много существующих данных, которые нужно перенести), но в долгосрочной перспективе лучше всего хранить весь контент в стандартных таблицах WordPress и отображать его с помощью стандартных функций и шаблонов WordPress. - если нет действительно веской причины не делать этого.

MathSmath
источник
Спасибо MathSmath, в этом случае вы имеете в виду, что я преобразовываю данные в таблице в сообщения? Я думаю, что в этом случае мне нужно будет использовать метаданные поста, чтобы иметь гибкость макета?
JanWillem
Да, вы должны использовать метаданные публикации, чтобы добавить любое количество настраиваемых полей (которые соответствуют вашим столбцам в таблице), а затем, используя это, создать другой макет в зависимости от того, какой «виджет» имеет какие метаданные публикации.
Дон Гилберт
1
Для тех, кто попал сюда через Google ..., есть набор плагинов, которые позволят вам импортировать (и позже обновлять с помощью) CSV-файлы и конвертировать их в пользовательский контент пост-типа. Ура четыре года спустя.
Будет
3

Если эта таблица находится в той же базе данных, что и ваша установка WordPress, вы можете использовать ее $wpdbдля получения данных. В противном случае вы можете создать свой собственный wpdbобъект с деталями подключения для другой базы данных.

Я не уверен, что вы подразумеваете под виджетами в данном случае, не похоже ли это на виджеты WordPress? Так как я размышляю над этим, у меня нет предложений, как обращаться с шаблоном для них.

Rarst
источник
Привет Рарст, с виджетом я имею в виду «вещь», это может быть книга, машина, вино, в основном все, что имеет свойства.
JanWillem
1

FWIW, мы сделали что-то вроде этого, где мы извлекаем данные из внешнего источника данных. Мы создали пользовательские типы записей и создали функции, которые запускаются различными хуками WordPress, в результате чего мы можем показать все как перед посетителями сайта, так и в wp-admin. Посты не хранятся в wpdb, даже в постах "прокси".

Таким образом, это возможно сделать таким образом, хотя нам еще предстоит выяснить, как использовать мусорную корзину для их удаления, и я закончил тем, что добавил свои собственные ссылки на страницы wp-admin с использованием JQuery.

Если у вас нет веской причины сделать это таким образом, я согласен с @MathSmath: создайте пользовательский тип поста и сохраните его как «настоящие» посты WordPress.

PapaFreud
источник
-1

Насколько я знаю, то, что вы хотели сделать, может быть легко достигнуто с помощью Caspio. Вам даже не нужно использовать какую-либо базу данных. Они предоставляют онлайновую базу данных, поверх которой вы можете создавать все виды управляемых базой данных функций. Вот видео, которое я видел от них, которое показывает, как создать и внедрить базу данных контактов с возможностью поиска на сайте WP всего за несколько минут без какого-либо кодирования: https://www.youtube.com/watch?v=BgHV7ZPplo0

Надеюсь это поможет!

AnthonyWP
источник
Это не ответ на вопрос.
Ниламбар Шарма