Урок за WordPress: Как да създадете приставка за препоръки

И така, ето ни за втория седмичен урок за WordPress. Научихме се как да създадем безкраен превъртащ се WP сайт и плъгин за обръщане на страница в миналото. Днес ще научим малко повече за персонализираните типове публикации и как да заредите техните данни.


Тази функция е наистина важна за вашия сайт, тъй като ви позволява да показвате на хората, които ви препоръчват. Препоръките са страхотно социално доказателство за вашата страхотност. И не са ви необходими сложни приставки или много код, за да постигнете това, както ще видите с няколко файла, можете да създадете секси презентация за вашите отзиви.

Да започнем тогава!

цип & Инсталирай

Ако бързате да проверите това, можете да го изтеглите и инсталирате.

След това ще трябва да добавите някои данни, като добавите няколко препоръки, като използвате чисто новите препоръки, които можете да видите на таблото си за управление:

списък-признания

След това можете да използвате основния кратък код, за да заредите, че:

[препоръки rand = 0 max = 5]

Когато добавите този код, на страницата си ще видите нещо подобно:

Основните-признания

Сега ще видим как да създадете и проучите това (като добавите още функции и промените външния вид).

Основите

Както вече казахме, ще трябва да добавите метаданните на заглавката, да създадете файла с приставки и да извикате скриптите си. Накратко, ще създадете нова папка под вашето wp-content / плъгини с името на своя плъгин, след което ще създадете файл със същото име като папката, за да бъде основният ви плъгин файл.

След като направите това копие и поставете, както следва:

<?PHP
/ *
Име на приставката: Отзиви
Описание: Показване на отзиви на клиенти.
Версия: 1.0
Автор: Блог за уеб приходи
Лиценз: GPL2
* /

// enqueueing скриптове и стилове
функция plugin_scripts () {
wp_enqueue_script ( “JQuery ‘);
wp_enqueue_script (‘flexslider’, plugins_url (‘js / jquery.flexslider-min.js’, __FILE__), масив (‘jquery’), ‘2.2’, невярно);
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 общи вида публикации, страници и публикации. Но също така има много вътрешни типове публикации (като прикачени файлове), така че дефиницията „тип публикация“ е: Всеки тип данни, които трябва да съхранявате.

Тъй като нашата приставка ще създаде нова функционалност, WP няма вградено място за съхраняване на това, така че трябва да го създадем. Не се страхувайте, малък скакалец, това е съвсем просто, можете да използвате този код:

// черната магия за създаване на типа публикация
функция create_post_type () {
register_post_type (
‘testimonials’, // нов тип публикация
масив (
‘етикети’ => масив (
‘име’ => __( ‘Отзиви’ ),
‘singular_name’ => __ („Препоръка“)
),
‘обществен’ => true, / * Типът на публикацията е предназначен за обществено ползване. Това включва отпред и в wp-admin. * /
‘поддържа’ => масив ( “заглавието”, “редактор”, “картинка”, “custom_fields”),
‘йерархична’ => фалшив
)
);
}

Тук просто използваме функцията register_post_type (), за да кажем на WP „Ей, приятел, трябва да съхраняваме този тип данни, моля бъдете готови да ги получаваме“.

Ние също така му казваме, че този вид данни се нарича „testimonials“, той трябва да е достъпен за обществен достъп (така че всъщност създава нов елемент от менюто на таблото ви за него), полетата, от които се нуждаем от него, и ако е йерархичен. или не (като страници, които имаме страници за родители и деца).

Тогава трябва да го наричаме всеки път, когато зареждаме WordPress. Тази кука ще го направи:

добавяне (‘init’, ‘create_post_type’);

Персонализираните полета

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

Бихме могли да направим това с обичайни персонализирани полета, но е много по-добре да имаме „затворено“ поле, където потребителят не е необходимо да въвежда име на полето, а също и там, където можете да добавите някои правила за валидиране.

На първо място трябва да създадем нов метабокс, който са онези хубави панели, които имате в зоната си за редактиране, всеки малък панел е метабокс. Тази функция ще създаде и извика:

// добавяне на мета полето на URL адреса
функция add_custom_metabox () {
add_meta_box (‘custom-metabox’, __ (‘Link’), ‘url_custom_metabox’, ‘testimonials’, ‘side’, ‘low’);
}
добавяне (‘admin_init’, ‘add_custom_metabox’);

Функцията add_meta_box () изисква тези параметри:

  1. ID – Уникалният идентификатор за него. Можете да използвате всичко уникално тук като „еднорог-яде-дъга” или „препоръка-връзка”. Всичко, което може да се използва вътрешно
  2. Заглавие – Какво ще се покаже на потребителя? Тук е важно да използвате функцията __ (), това е функцията, която позволява на потребителите от чужди езици да превеждат вашия плъгин с .po файлове (без редактиране на плъгин файлове)
  3. Обратно повикване – Функцията, при която имате действителното съдържание на метабокса
  4. Тип на публикацията – В нашия случай искаме тя да е видима само за отзиви
  5. Контекст – Къде в страницата, която искате да го покажете
  6. Приоритет – ако трябва да е преди други предмети от същата позиция или след тях

Сега трябва да създадем функцията url_custom_metabox (), тъй като сме я нарекли.

// HTML за администраторската област
функция url_custom_metabox () {
глобален $ пост;
$ urllink = get_post_meta ($ пост->ID, ‘urllink’, вярно);

// валидиране!
ако (! preg_match ( "/ HTTP (S): ///", $ urllink) && $ urllink! = "") {
$ грешки = "Този URL адрес не е валиден";
$ urllink = "HTTP: //";
}

// извежда невалидно съобщение за URL адрес и добавя http: // към полето за въвеждане
if (isset ($ грешки)) {echo $ грешки; }
?>

URL адрес:

<?PHP
}

Ок, сега превеждам това на обикновен английски:

  • Глобалната променлива $ post се нарича, така че можем да знаем кой е POSTID на текущия елемент
  • Зареждаме текущата стойност за URL адреса
  • Ние потвърждаваме, ако стойността, която потребителят вмъква, е валидна. Ако има поне едно събитие „http“ или „https“, стойността е ОК, в противен случай тя е валидна и трябва да използваме стойността по подразбиране
  • След това показваме грешките, ако има такива
  • Сега започваме действителния HTML, добавяйки стойността по подразбиране в полето за въвеждане, както сме получили в PHP

След този момент всъщност трябва да запишем какво се изпраща от потребителя. Ще използваме куката „save_post“, така че всеки път, когато WordPress запише публикация, ще извика тази функция:

// запазва персонализирани данни от полето
функция save_custom_url ($ post_id) {
глобален $ пост;

if (isset ($ _ POST [‘siteurl’])) {
update_post_meta ($ post->ID, ‘urllink’, $ _POST [‘siteurl’]);
}
}
добавяне (‘save_post’, ‘save_custom_url’);

Тук просто проверяваме дали има данни за публикации, наречени „връзки към сайта“, което е нашето поле. Ако има връзка към сайта, нека го запишем.

След като всичко е на мястото си, ето как ще изглежда новата ви страница с препоръки:

нов атестат

Зареждане на нашите персонализирани данни

Сега трябва всъщност да заредим елементите си и ще използваме функцията get_posts (), най-вече защото имаме само прости данни, така че не се нуждаем от правилен цикъл на WP (това би добавило много DB обаждания и наистина не нямам нужда от това).

Така че, първо нека създадем функция, за да получим връзката към нашия сайт, ако има такава.

// връщане на URL адрес за публикация
функция get_url ($ post) {
$ urllink = get_post_meta ($ пост->ID, ‘urllink’, вярно);

върнете $ urllink;
}

Сега можем да стартираме функцията за къс код. Един прост начин за подразбиране и валидиране на данните за къси кодове е създаването на атрибутите за цикъла като масив, така че можем да добавяме нови елементи, тъй като имаме нужда от тях, като този:

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

$ args = масив (
"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 ($ пост);
    ехо ‘

  • “;
    if (! празно ($ url_thumb)) {echo ‘“; }
    ехо ‘

    ‘. $ Пост->POST_TITLE “.

    “;
    if (! празно ($ post->post_content)) {echo ‘

    ‘. $ Пост->POST_CONTENT.
    “; }
    ако (! празно ($ 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