Wordpress и веб-разработка

Работа с пользовательскими таблицами базы данных в WordPress

Работа с пользовательскими таблицами базы данных в WordPress

Я показал вам много способов, с помощью которых WordPress уже является наиболее гибким CMS . Быстрое сканирование лучших плагинов Страница также покажет некоторые из множества уникальных и нишевых способов, которыми вы можете заставить свой блог работать усерднее. Я даже показал вам, как использовать пользовательские типы сообщений создать чтобы создать свою собственную мини-базу данных. базу данных ; но я упустил одну вещь, я думаю.

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

Требования

  • Ваш собственный сайт WordPress, очевидно.
  • Базовые навыки работы с PHP и MySQL — я рекомендую учебные пособия по Tizag PHP и MySQL , так как они охватывают более чем достаточно, и вы можете работать с ними за один день и обращаться к ним снова, когда это необходимо.
  • Существующий набор данных в MySQL.
  • Командная строка доступа PHPMyAdmin для объединения баз данных.
  • Единая база данных с обоими наборами данных — это означает, что вам нужно либо объединить таблицы базы данных WordPress с существующей базой данных, и изменить wp-config.php, чтобы отразить новое имя пользователя и пароль базы данных; или импортируйте существующий набор данных в базу данных WordPress. Это проще, если у вас нет другой системы, основанной на данных. В любом случае, я собираюсь предположить, что вы уже сделали этот шаг — ознакомьтесь с моей статьей о том, как сделать полное резервное копирование базы данных через командную строку SSH. сделать резервную копию командную строку SSH. сделать резервную копию если вам нужны некоторые указатели там.

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

Зачем мне это делать?

Несмотря на множество плагинов и расширений, доступных для нас в WordPress, иногда у вас уже есть набор данных, и перенос его в формат, который нравится WordPress, доставит больше хлопот, чем стоит — особенно если у вас есть другая система, с которой вам нужно взаимодействовать.

Сегодня я возьму пример простой базы данных с информацией о клиентах и ​​создам шаблон страницы, в котором перечислены эти клиенты — только для зарегистрированных пользователей WordPress (хотя сама страница будет доступна из внешнего интерфейса сайта). ).

В качестве справки для имен столбцов и таблиц в базе данных может оказаться полезным установить плагин Database Browser , который также позволит вам выполнять базовые запросы where и order by для проверки вашего кода SQL. Вот снимок экрана с образцом набора данных, который я создал — в данном случае это таблица «Клиенты», содержащая некоторую базовую информацию о каждом из моих очень важных клиентов.

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

Что именно мы будем здесь делать?

  • Создание нового шаблона страницы, к которому мы можем затем применить собственный PHP-код.
  • Рассмотрим, как создать пользовательский запрос к базе данных, а затем проанализировать результаты, используя встроенные классы базы данных WordPress.
  • Глядя на разрешения на случай, если вы хотите ограничить доступ.

Создание собственного шаблона

Если вы хотите использовать какой-то свой собственный код PHP, самый простой способ сделать это — создать собственный шаблон, а затем применить шаблон к определенной странице, которую вы создаете в WordPress. Начните с открытия файлов вашей темы и дублирования файла page.php (или single.php, если его нет). Переименуйте это в нечто очевидное, например « template-Customers.php », как я выбрал.

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

  / *
 Название шаблона: Клиенты
 * / 

Очевидно, называйте это как хотите.

Теперь найдите функцию основного контента. Вы можете удалить его, если хотите, но я просто добавлю дополнительный код после него. С темой по умолчанию двадцать одиннадцать, вы ищете:

  <? php get_template_part ('content', 'page');  ?> 

Но в большинстве тем это будет что-то вроде:

  <? php the_content ();?> 

Это бит, который отображает ваш пост контент, поэтому все, что вы добавите после этого, будет показано сразу после основной области контента. Просто чтобы проверить, все ли работает, давайте добавим базовый оператор echo и сохраним файл.

  <? php echo "Это наш пользовательский шаблон!";?> 

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

Настраиваемая таблица базы данных WordPress

Опубликуйте и проверьте страницу, чтобы увидеть, сработало ли ваше эхо-выражение.

Настраиваемая таблица базы данных WordPress

Класс пользовательских запросов

Чтобы получить прямой доступ к базе данных, все, что вам нужно сделать, это использовать объект $ wpdb, сделав его глобальным . Эти три строки должны это сделать — замените общий оператор echo, который мы сделали ранее, следующим:

  <? PHP
 глобальный $ wpdb;
 $ Customers = $ wpdb-> get_results ("SELECT * FROM Customers;");
 print_r ($ клиентов);
 ?> 

Сохраните и обновите страницу. Функция print_r () просто выгружает все данные из объекта клиента — так что вы должны видеть, что ваш простой оператор SQL для выбора всего из таблицы клиента работал хорошо. Теперь все, что вам нужно сделать, это проанализировать результаты чего-то полезного. Конечно, вы можете поместить любой оператор SQL select в метод get_results () , но я здесь не для того, чтобы научить вас SQL, поэтому мы пока остановимся на простом захвате всего.

Чтобы разобрать результаты во что-то более значимое, сейчас я просто воспользуюсь базовой таблицей. Замените метод print_r на следующий код (не волнуйтесь, позже я вставлю полный код, если вы не хотите собирать его вместе) :

  echo "<table>";
 foreach ($ клиентов как $ клиентов) {
 echo "<tr>";
 echo "<td>". $ customer-> name. "</ td>";
 echo "<td>". $ customer-> email. "</ td>";
 echo "<td>". $ customer-> phone. "</ td>";
 echo "<td>". $ customer-> address. "</ td>";
 echo "</ tr>";
 }
 echo "</ table>"; 

Если у вас есть каждый объект customer внутри foreach , вы можете легко получить доступ к именам полей с помощью $ customer-> field_name — это действительно не может быть проще.

Закрепление вещей

В этом случае я не хочу, чтобы мои данные о клиентах отображались кому-либо и индексировались поисковыми системами, но я все же хочу, чтобы они отображались во внешнем интерфейсе с использованием этого шаблона; Так что мы можем сделать? Легко, мы собираемся использовать условное слово WordPress is_user_logged_in () и отображать быстрое сообщение, если это не так. Вот снова весь блок кода с новым условным добавлением:

  <? PHP

 if (is_user_logged_in ()):

 глобальный $ wpdb;
 $ Customers = $ wpdb-> get_results ("SELECT * FROM Customers;");

 echo "<table>";
 foreach ($ клиентов как $ клиентов) {
 echo "<tr>";
 echo "<td>". $ customer-> name. "</ td>";
 echo "<td>". $ customer-> email. "</ td>";
 echo "<td>". $ customer-> phone. "</ td>";
 echo "<td>". $ customer-> address. "</ td>";
 echo "</ tr>";
 }
 echo "</ table>";
 еще:
 echo "Извините, только зарегистрированные пользователи могут просматривать эту информацию";
 ENDIF;

 ?> 

Сохраните и обновите, и вы все равно должны увидеть содержимое. Однако выйдите из системы, затем обновите страницу, и вы увидите сообщение « Извините, только зарегистрированные пользователи… ».

настраиваемая таблица базы данных

Если вы хотите ограничить это для определенных уровней пользователей, а не для всех зарегистрированных пользователей, то вместо этого вы должны использовать условный current_user_can () вместе со связанной возможностью (подробнее о возможностях в кодексе) . Это будет проверять, например, пользователей-администраторов — единственных пользователей, которые могут управлять параметрами плагина:

  current_user_can ('manage_options') 

Резюме

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

На следующей неделе я займусь немного более хитрой темой, как вставить данные обратно в вашу пользовательскую базу данных, используя форму на странице, и немного магии AJAX / jQuery. И взгляните на некоторые из наших других руководств WordPress, таких как решение 500 внутренних ошибок сервера и пустых страниц и рекомендуемые миниатюры и размеры изображений размерам

У вас еще нет установки WordPress? Ознакомьтесь с нашим руководством по установке WordPress на Bluehost.

Похожие посты
Wordpress и веб-разработка

Добавить красивые слайд-шоу в сообщения WordPress с помощью SlideDeck

Wordpress и веб-разработка

Сделайте свой WordPress блог iPad удобным с Onswipe

Wordpress и веб-разработка

Как создать карту изображения с помощью GIMP

Wordpress и веб-разработка

WordPress: еще 3 скрытых жемчужины в наборе плагинов Jetpack, а также обновлено приложение WordPress!