Учебник WordPress: как создать плагин отзывов

Статья написана:
  • WordPress
  • Обновлено: Aug 12, 2013

Итак, вот наш второй еженедельный учебник по WordPress. Мы научились создавать бесконечный прокручиваемый сайт WP плагин для плагинов в прошлом. Сегодня мы узнаем немного больше о пользовательских типах сообщений и способах загрузки их данных.

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

Тогда начнем!

Zip & Install

Если вы спешите проверить это, вы можете скачать и установить его.

Затем вам нужно добавить некоторые данные, добавив несколько отзывов, используя новые отзывы, которые вы можете увидеть на панели инструментов:

Список-отзывы

Затем вы можете использовать базовый короткий код для загрузки:

[отзывы rand = 0 max = 5]

Когда вы добавите этот код, вы увидите что-то подобное на своей странице:

Основные-отзывы

Теперь мы посмотрим, как создать и изучить это (добавив больше функций и изменив внешний вид).

Основы

Как мы уже говорили, вам нужно добавить метаданные заголовков, создать файл плагина и вызвать ваши скрипты, Короче говоря, вы создадите новую папку под своим wp-content / plugins с вашим именем плагина, а затем создадите файл с тем же именем, что и папка, которая будет вашим основным файлом плагина.

После того как вы сделали эту копию и вставьте ее следующим образом:

<? php / * Имя плагина: Отзывы Описание: Показать отзывы клиентов. Версия: 1.0 Автор: Блог о веб-доходах Лицензия: GPL2 * / // постановка в очередь сценариев и стилей function plugin_scripts () {wp_enqueue_script ('jquery'); wp_enqueue_script ('flexslider', plugins_url ('js / jquery.flexslider-min.js', __FILE__), массив ('jquery'), '2.2', false); wp_enqueue_script ('testimonials', plugins_url ('js / testimonials.js', __FILE__), массив ('jquery'), '1.0', false); wp_enqueue_style ('flexsliderCSS', plugins_url ('css / flexslider.css', __FILE__), false, '2.2', 'all'); wp_enqueue_style ('testimonialsCSS', plugins_url ('css / testimonials.css', __FILE__), false, '1.0', 'all'); } add_action ("wp_enqueue_scripts", "plugin_scripts");

Вот что мы делаем:

  • Рассказывая в WP, что такое имя нашего плагина, автор, что он делает
  • Создание функции, в которую мы вставляем регулярные скрипты (например, jQuery) и настраиваемые сценарии (например, flexslider) и стильные листы
  • Сообщая WP, чтобы загрузить функцию скриптов в свой скрипт по умолчанию, поэтому они будут загружены на страницы

Это все довольно круто, но не забудьте создать файлы под / js и / css. Вы можете просто загрузить их в наш демонстрационный контент, поэтому вам не нужно много копать, чтобы найти файлы flexslider.

Теперь у нас есть все основные вещи, и мы можем начать смешную часть.

Тип пользовательского сообщения

По умолчанию WordPress имеет общие типы сообщений, страниц и сообщений 2. Но у него также много внутренних типов сообщений (например, вложения), поэтому определение типа «post type»: каждый тип данных, который нужно хранить.

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

// черная магия для создания функции типа записи create_post_type () {register_post_type ('testimonials', // массив новых типов записей ('tags' => array ('name' => __ ('Testimonials'), 'singular_name') => __ ('Testimonial')), 'public' => true, / * Тип записи предназначен для публичного использования. Включает в себя внешний интерфейс и wp-admin. * / 'Supports' => array ('title ',' editor ',' thumbnail ',' custom_fields '),'ierarchical' => false)); }

Здесь мы просто используем функцию register_post_type (), чтобы сообщить WP «Привет, Buddy, нам нужно хранить данные такого типа, пожалуйста, будьте готовы принять его».

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

Затем нам нужно вызвать его каждый раз, когда мы загружаем WordPress. Этот крюк сделает это:

add_action ('init', 'create_post_type');

Пользовательские поля

Теперь у нашего пользовательского типа сообщения есть заголовок (имя человека), контент (отзыв человека), изображение (изображение с изображением), но у него отсутствует ссылка, так как если человек достаточно хорош, чтобы говорить о вас, вы должны по крайней мере ссылаться на их сайт, не так ли?

Мы могли бы сделать это с обычными настраиваемыми полями, но гораздо лучше иметь «закрытое» поле, где пользователю не нужно вводить имя поля, а также где вы можете добавить некоторые правила проверки.

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

// добавление поля мета-поля URL function add_custom_metabox () {add_meta_box ('custom-metabox', __ ('Link'), 'url_custom_metabox', 'testimonials', 'side', 'low'); } add_action ('admin_init', 'add_custom_metabox');

Для функции add_meta_box () требуются следующие параметры:

  1. ID - уникальный идентификатор для него. Вы можете использовать что-нибудь уникальное здесь, например, «единорог-еда-радуга» или «свидетельство-ссылка». Все, что можно использовать внутри страны
  2. Title - Что будет показано для пользователя? Здесь важно использовать функцию __ (), это функция, которая позволяет пользователям с иностранных языков переводить ваш плагин с файлами .po (без редактирования файлов плагинов)
  3. Обратный вызов - функция, в которой у вас есть фактическое содержимое метаболизма
  4. Тип сообщения - в нашем случае мы хотим, чтобы он был видимым только для отзывов
  5. Контекст. На странице, которую вы хотите показать.
  6. Приоритет. Если это должно быть перед другими предметами того же положения или после них

Теперь нам нужно создать функцию url_custom_metabox (), так как мы ее вызвали.

// HTML для области администрирования function url_custom_metabox () {global $ post; $ urllink = get_post_meta ($ post-> ID, 'urllink', true); // проверка! if (! preg_match ("/ http (s?): ///", $ urllink) && $ urllink! = "") {$ errors = "Этот URL-адрес недействителен"; $ urllink = "http: //"; } // выводим URL-адрес invlid и добавляем http: // в поле ввода if (isset ($ errors)) {echo $ errors; }?> <p> <label for = "siteurl"> URL: <br /> <input id = "siteurl" size = "37" name = "siteurl" value = "<? php if (isset ($ urllink) ) {echo $ urllink;}?> "/> </ label> </ p> <? php}

Хорошо, теперь перевести это на простой английский:

  • Вызывается глобальная переменная $ post, поэтому мы можем знать, которая является POSTID текущего элемента
  • Мы загружаем текущее значение для URL-адреса
  • Мы проверяем Если значение, введенное пользователем, является допустимым. Если есть хотя бы одно сообщение «http» или «https», это значение ОК, иначе оно действительно, и нам нужно использовать значение по умолчанию
  • Затем мы показываем ошибки, если есть
  • Теперь мы начинаем фактический HTML, добавляя значение по умолчанию в поле ввода, как мы получили в PHP

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

// сохраняет данные настраиваемого поля function save_custom_url ($ post_id) {global $ post; if (isset ($ _ POST ['siteurl'])) {update_post_meta ($ post-> ID, 'urllink', $ _POST ['siteurl']); }} add_action ('save_post', 'save_custom_url');

Здесь мы просто проверяем, есть ли какие-либо данные, называемые «sitelink», которые являются нашим именем поля. Если есть дополнительная ссылка, давайте ее сохраним.

После того, как все будет на месте, вот как будет выглядеть ваша новая страница отзывов:

новый отзыв

Загрузка наших пользовательских данных

Теперь нам нужно фактически загрузить наши элементы, и мы будем использовать функцию get_posts (), главным образом потому, что у нас есть только простые данные, поэтому нам не нужен правильный цикл WP (это добавит много вызовов БД, и мы действительно надеемся ему это нужно).

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

// возвращаем URL для функции записи get_url ($ post) {$ urllink = get_post_meta ($ post-> ID, 'urllink', true); вернуть $ urllink; }

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

// регистрация шорткода для показа отзывов function load_testimonials ($ a) {$ args = array ("post_type" => "testimonials"); if (isset ($ a ['rand']) && $ a ['rand'] == true) {$ args ['orderby'] = 'rand'; } if (isset ($ a ['max'])) {$ args ['posts_per_page'] = (int) $ a ['max']; } // получение всех отзывов $ posts = get_posts ($ args); // HTML OUTPUT} add_shortcode ("testimonials", "load_testimonials");

Как вы можете видеть, у нас есть атрибуты shortcode, загруженные и переданные в массив $ args, когда они проверяются в том формате, который ему нужен WordPress, поэтому мы можем загружать сообщения, используя их.

Теперь нам нужно добавить некоторый HTML-код, следуя структуре по умолчанию flexslider. Вот как это будет выглядеть:

echo '<div>'; echo '<ul>'; foreach ($ posts as $ post) {// получение изображения большого пальца $ url_thumb = wp_get_attachment_thumb_url (get_post_thumbnail_id ($ post-> ID)); $ link = get_url ($ post); echo '<li>'; if (! empty ($ url_thumb)) {echo '<img src = "'. $ url_thumb. '" />'; } echo '<h2>'. $ post-> post_title. '</ h2>'; if (! empty ($ post-> post_content)) {echo '<p>'. $ post-> post_content. '<br />'; } if (! empty ($ link)) {echo '<a href="'.$link.'"> Посетить сайт </a> </ p>'; } echo '</ li>'; } echo '</ ul>'; echo '</ div>';

Подождите, но зачем нам создавать HTML-код внутри функции PHP? Это потому, что мы можем условно загружать контент только в том случае, если пользователь добавил контент, поэтому у вас не будет пустых тегов HTML, просто ожидая испортить ваш макет.

Как насчет боковой панели?

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

add_filter ('widget_text', 'do_shortcode');

Что дальше?

Итак, вам понравился этот урок? Что бы вы добавили в качестве опции для вашего короткого кода с отзывами? У вас есть идеи для будущих должностей? Дайте нам знать, используя раздел комментариев!

О Рочестер Оливейра

Я веб-дизайнер и предприниматель из Итажуба (МГ), Бразилия. Я люблю писать на непонятные темы и делать интересные вещи.

Подключение: