Содержание
Я показал вам много способов, которыми WordPress уже является самой гибкой CMS
, Быстрое сканирование страницы «Лучшие из плагинов WordPress» также покажет некоторые из множества уникальных и нишевых способов сделать ваш блог более напряженным. Я даже показал вам, как использовать пользовательские типы сообщений
создать свою собственную мини базу данных
; но я упустил одну вещь, я думаю.
Что если у вас уже есть база данных, например, информация о клиентах, но вы хотите иметь возможность запрашивать эти данные и отображать их в шаблоне WordPress? Сегодня я покажу вам, как это сделать безопасно в движке WordPress.
Требования
- Ваш собственный сайт WordPress, очевидно.
- Базовые навыки работы с PHP и MySQL — я рекомендую учебные пособия по Tizag PHP и MySQL, так как они охватывают более чем достаточно, и вы можете работать с ними за один день и обращаться к ним снова, когда это необходимо.
- Существующий набор данных в MySQL.
- Командная строка доступа PHPMyAdmin для объединения баз данных.
- Единая база данных с обоими наборами данных — это означает, что вам нужно либо объединить таблицы базы данных WordPress с существующей базой данных, и изменить wp-config.php, чтобы отразить новое имя пользователя и пароль базы данных; или импортируйте существующий набор данных в базу данных WordPress. Проще, если у вас нет другой системы, которая полагается на данные. В любом случае, я собираюсь предположить, что вы уже сделали этот шаг — ознакомьтесь с моей статьей о том, как сделать полное резервное копирование базы данных через командную строку SSH
если вам нужны некоторые указатели там.
Этот учебник настолько же продвинут, насколько мы собираемся получить его в MakeUseOf, но он должен открыть вам мир возможностей.
Зачем мне это делать?
Несмотря на множество плагинов и расширений, доступных для нас в WordPress, иногда у вас уже есть набор данных, и перенос его в формат, который нравится WordPress, доставит больше хлопот, чем стоит, особенно если у вас есть другая система, с которой вам нужно взаимодействовать.
Сегодня я возьму пример простой базы данных с информацией о клиентах и создам шаблон страницы, в котором перечислены эти клиенты — только для зарегистрированных пользователей WordPress (хотя сама страница будет доступна из внешнего интерфейса сайта). ).
В качестве ссылки на имена столбцов и таблиц в базе данных может оказаться полезным установить плагин Database Browser, который также позволит вам выполнять базовые запросы where и order by для проверки вашего кода SQL. Вот снимок экрана с образцом набора данных, который я создал — в данном случае это таблица «Клиенты», содержащая некоторую базовую информацию о каждом из моих очень важных клиентов.
Что именно мы будем здесь делать?
- Создание нового шаблона страницы, к которому мы затем можем применить некоторый пользовательский код PHP.
- Рассмотрим, как создать собственный запрос к базе данных, а затем проанализировать результаты, используя встроенные классы базы данных WordPress.
- Глядя на разрешения на случай, если вы хотите ограничить доступ.
Создание собственного шаблона
Если вы хотите использовать свой собственный PHP-код, самый простой способ сделать это — создать собственный шаблон, а затем применить шаблон к определенной странице, которую вы создаете в WordPress. Начните с открытия файлов вашей темы и дублирования файла page.php (или single.php, если его нет). Переименуйте его в нечто очевидное, например «template-Customers.php», как я выбрал.
В самом верху файла мы должны сказать WordPress, что это пользовательский шаблон. Сделайте это, добавив следующее (это комментарий в стиле PHP, поэтому оно должно быть после любого открывающего тега PHP, если имеется):
/ *
Название шаблона: Клиенты
* /
[/ NOEDIT]
Очевидно, называйте это как хотите.
Теперь найдите функцию основного контента. Вы можете удалить его, если хотите, но я просто добавлю дополнительный код после него. С темой по умолчанию двадцать одиннадцать вы ищете:
[/ NOEDIT]
Но в большинстве тем это будет что-то вроде:
[/ NOEDIT]
Это бит, который отображает ваш пост-контент, поэтому все, что вы добавите после этого, будет показано сразу после основной области контента. Просто чтобы проверить, все ли работает, давайте добавим базовый оператор echo и сохраним файл.
[/ NOEDIT]
[/ NOEDIT]
Прежде чем мы сможем это проверить, нам нужно создать страницу на странице администратора WordPress и применить к ней шаблон нашей страницы.
Опубликуйте и проверьте страницу, чтобы увидеть, сработал ли ваш оператор echo.
Класс пользовательских запросов
Чтобы получить прямой доступ к базе данных, все, что вам нужно сделать, это использовать объект $ wpdb, сделав его глобальным. Эти три строки должны это сделать — замените общий оператор echo, который мы сделали ранее, следующим:
get_results ("SELECT * FROM клиентов;");
print_r ($ клиентов);
?>
[/ NOEDIT]
Сохраните и обновите страницу. Функция print_r () просто выгружает все данные из объекта клиента — так что вы должны увидеть, что ваш простой оператор SQL для выбора всего из таблицы клиента работает хорошо. Теперь все, что вам нужно сделать, это проанализировать результаты чего-то полезного. Конечно, вы можете поместить любой оператор SQL select в метод get_results (), но я здесь не для того, чтобы научить вас SQL, поэтому мы пока остановимся на простом захвате всего.
Чтобы разобрать результаты во что-то более значимое, сейчас я просто воспользуюсь базовой таблицей. Замените метод print_r на следующий код (не волнуйтесь, позже я вставлю полный код, если вы не хотите собирать его вместе):
эхо "
"$ На клиентах> имя." | «; эхо ""$ На клиента> по электронной почте." | «; эхо ""$ На клиента> телефон." | «; эхо ""$ На клиента> адрес." | «; эхо "
[/ NOEDIT]
Если у вас есть каждый объект customer внутри foreach, вы можете легко получить доступ к именам полей с помощью $ customer-> field_name — это действительно не может быть проще.
Закрепление вещей
В этом случае я действительно не хочу, чтобы мои данные о клиентах отображались кому-либо и индексировались поисковыми системами, но я все же хочу, чтобы они отображались во внешнем интерфейсе с использованием этого шаблона; Так что мы можем сделать? Легко, мы собираемся использовать условное выражение WordPress is_user_logged_in () и отображать быстрое сообщение, если они не таковы. Вот снова весь блок кода с новым условным добавлением:
get_results ("SELECT * FROM клиентов;");
эхо "
"$ На клиентах> имя." | «; эхо ""$ На клиента> по электронной почте." | «; эхо ""$ На клиента> телефон." | «; эхо ""$ На клиента> адрес." | «; эхо "
[/ NOEDIT]
Сохраните и обновите, и вы все равно должны увидеть содержимое. Однако выйдите из системы, затем обновите страницу, и вы увидите сообщение «Извините, только зарегистрированные пользователи…».
Если вы хотите ограничить это для определенных уровней пользователей, а не для всех зарегистрированных пользователей, то вместо этого вы должны использовать условный current_user_can () вместе со связанной возможностью (подробнее о возможностях в кодексе). Это будет проверять, например, пользователей-администраторов — единственных пользователей, которые могут управлять параметрами плагина:
current_user_can ('manage_options')
[/ NOEDIT]
Резюме
Я собираюсь оставить это там сегодня, поскольку все остальное станет SQL
учебник или как стилизовать вывод с помощью CSS. Небо действительно предел с WordPress, и я надеюсь, что это пригодится некоторым из вас в ваших проектах WordPress.
На следующей неделе я расскажу о немного более хитрой теме о том, как вставить данные обратно в вашу пользовательскую базу данных, используя форму на странице, и немного магии AJAX / jQuery.
У вас еще нет установки WordPress? Ознакомьтесь с нашим руководством по установке WordPress на Bluehost
,