WordPress Tutorial: Как создать плагин отзывов

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


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

Давайте начнем тогда!

застежка-молния & устанавливать

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

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

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

Затем вы можете использовать основной шорткод, чтобы загрузить это:

[отзывы 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 общих типа сообщений: страницы и сообщения. Но у него также есть много внутренних типов записей (например, вложений), поэтому определение «тип записей» таково: Каждый тип данных, которые вам нужно хранить.

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

// черная магия для создания типа поста
function create_post_type () {
register_post_type (
‘testimonials’, // новый тип записи
массив (
«метки» => массив (
‘name’ => __ («Отзывы»),
‘singular_name’ => __ («Отзыв»)
),
‘public’ => true, / * Тип сообщения предназначен для публичного использования. Это включает в себя передний конец и в wp-admin. * /
‘поддерживает’ => Массив ( ‘название’, ‘редактор’, ‘эскиз’, ” custom_fields),
‘иерархический’ => ложный
)
);
}

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

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

Затем мы должны вызывать его каждый раз, когда загружаем 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. Заголовок – Что будет показано пользователю? Здесь важно использовать функцию __ (), которая позволяет пользователям с иностранных языков переводить ваш плагин с помощью файлов .po (без редактирования файлов плагинов)
  3. Callback – функция, в которой у вас есть фактическое содержимое метабокса.
  4. Тип сообщения – в нашем случае мы хотим, чтобы он был виден только для отзывов
  5. Контекст – где на странице вы хотите показать его
  6. Приоритет – если это должно быть до других предметов той же позиции или после них

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

// HTML для админки
function url_custom_metabox () {
глобальный $ post;
$ urllink = get_post_meta ($ post->ID, ‘urllink’, true);

// проверка!
если (! preg_match ( "/ HTTP (S): ///", $ urllink) && $ urllink! = "") {
$ ошибки = "Этот URL недействителен";
$ urllink = "Http: //";
}

// выводим URL-адрес invlid и добавляем http: // в поле ввода
if (isset ($ errors)) {echo $ errors; }
?>

URL:

<?PHP
}

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

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

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

// сохраняет данные настраиваемого поля
функция save_custom_url ($ post_id) {
глобальный $ post;

if (isset ($ _ POST [‘siteurl’])) {
update_post_meta ($ post->ID, ‘urllink’, $ _POST [‘siteurl’]);
}
}
add_action (‘save_post’, ‘save_custom_url’);

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

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

новый отзыв

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

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

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

// возвращаем URL для поста
function get_url ($ post) {
$ urllink = get_post_meta ($ post->ID, ‘urllink’, true);

вернуть $ urllink;
}

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

// регистрация шорткода для показа отзывов
функция load_testimonials ($ a) {

$ args = array (
"post_type" знак равно> "отзывы"
);

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
}
add_shortcode ("отзывы","load_testimonials");

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

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

эхо ”;
эхо

    «;

    foreach ($ posts $ $ post) {
    // получаем изображение большого пальца
    $ url_thumb = wp_get_attachment_thumb_url (get_post_thumbnail_id ($ post)->Я БЫ));
    $ link = get_url ($ post);
    эхо

  • «;
    if (! empty ($ url_thumb)) {echo ‘«; }
    эхо

    ». $ Пост->Заголовок поста.’

    «;
    if (! empty ($ post)->post_content)) {echo ‘

    ». $ Пост->POST_CONTENT.
    «; }
    if (! empty ($ link)) {echo ‘Перейти на сайт

    «; }
    эхо

  • «;
    }

    эхо

«;
эхо ”;

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

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

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

add_filter (‘widget_text’, ‘do_shortcode’);

Что дальше?

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map