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

Обновлено: 12 августа 2013 г. / Автор статьи: Рочестер Оливейра

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

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

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

Zip & Install

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

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

list-testimonials

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

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

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

main-testimonials

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

Основы

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

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

<?php
/*
Plugin Name: Testimonials
Description: Display customer testimonials.
Version: 1.0
Author: Web Revenue Blog
License: GPL2
*/

//enqueueing scripts and styles
function plugin_scripts(){
    wp_enqueue_script('jquery');
    wp_enqueue_script('flexslider', plugins_url( 'js/jquery.flexslider-min.js' , __FILE__ ), array('jquery'), '2.2', false);
    wp_enqueue_script('testimonials', plugins_url( 'js/testimonials.js' , __FILE__ ), array('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', // массив нового типа сообщения ('labels' => array ('name' => __ ('Testimonials'), 'singular_name') => __ ('Testimonial')), 'public' => true, / * Тип сообщения предназначен для публичного использования. Это включает в себя внешний интерфейс и wp-admin. * / 'Supports' => array ('title ',' редактор ',' эскиз ',' 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', истина); // проверка! if (! preg_match ("/ http (s?): ///", $ urllink) && $ urllink! = "") {$ errors = "Этот URL недействителен"; $ urllink = "http: //"; } // выводим сообщение о invlid url и добавляем http: // в поле ввода if (isset ($ errors)) {echo $ errors; }?> URL: " />

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

  • Вызывается глобальная переменная $ 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», которые являются нашим именем поля. Если есть дополнительная ссылка, давайте ее сохраним.

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

new-testimonial

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

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

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

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

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

// регистрация шорткода для отображения отзывов function load_testimonials ($ a) {$ args = array ("post_type" => "testimonials"); если (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} add_shortcode ("отзывы", "load_testimonials");

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

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

эхо ' '; эхо ' '; foreach ($ posts as $ post) {// получение изображения большого пальца $ url_thumb = wp_get_attachment_thumb_url (get_post_thumbnail_id ($ post-> ID)); $ link = get_url ($ post); эхо ' '; если (! пусто ($ url_thumb)) {эхо ' '; } эхо ' '. $ post-> post_title.' '; если (! пусто ($ post-> post_content)) {эхо ' '. $ post-> post_content.' '; } if (! empty ($ link)) {echo ' Посетить сайт '; } эхо ' '; } эхо ' '; эхо ' ';

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

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

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

add_filter ('widget_text', 'do_shortcode');

Что дальше?

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

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

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

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