15 Полезни функции на WordPress Всички програмисти трябва да знаят
WordPress е пълен с големи функции за нас, които разработчиците използват. Можем да изтегляме пощенските списъци от нищото, да манипулираме почти всичко за тях, да грабнем всеки потребител, който желаем, и да показваме връзките им със социалните медии за миг.
Има обаче доста функции, които изглежда се пренебрегват по неизвестни причини. Аз бях кодиране с WordPress за около 8 години и понякога все още намирам нещо ново! Нека да разгледаме някои от моите любими пропуснати функции и се научете как да ги използвате по пътя.
antispambot ()
Обикновено повдигам няколко вежди с тази, изглежда, че това е една от най-добре скритите функции в кодовата база..
заменя символи с HTML единици, което е един от начините за това маскирайте имейл адресите от зли стъргалки.antispambot ()
$ email = '[email protected]'; echo "Можете да се свържете с мен на адрес". antispambot ($ email). „по всяко време“.
Макар това да е полезно, той също е пример за това, защо някои хора критикуват WordPress - това е ужасно назована функция. От четенето на името на функцията нямате представа какво прави.
human_time_diff ()
Когато за първи път научих за тази функция преди около година, си мислех, че трябва да е било неотдавнашно допълнение, което съм пренебрегнал в списъка с промени. Не точно…
Тази функция - която извежда разликата между две времеви марки - е от версия 1.5 (това е 17 февруари, 2018!).
Следният голям фрагмент, който взех от кодекса, показва колко отдавна е публикувана текущата публикация. Той използва датата на публикуване на публикацията като първи аргумент и текущата дата като втора.
echo "Тази публикация бе публикувана". human_time_diff (get_the_time ('U'), текущо време ('timestamp')). 'преди';
get_post_meta ()
Поемете с мен тук, знам, че това е добре използвана функция, обаче, как работи тя не е толкова общоизвестна. Първо, като пропускате втория и третия параметър, можете дръпнете всички метаданни за публикация.
$ all_meta = get_post_meta (14);
Дори и само да вземете данните за един ключ, всички postmeta се изтеглят така или иначе.
Причината всъщност е доста логична. Метаданните се използват на няколко места. ако
запитва базата данни всеки път, когато е била използвана, ще свършим с твърде много запитвания. Вместо това, ако издърпате метаданни, той кешира всичко и използва кешираните стойности за всички следващи извличания на метаданни.get_post_meta ()
wp_upload_bits ()
Тази функция е права функция за качване на файлове. Макар да не премества файла в папката за качване и да го добавя към медийния раздел на WordPress, той е изключително удобен и винаги можете да свършите останалото с
функция.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
За това има известно обяснение: първият параметър е името на файла. Вторият се амортизира, така че трябва да бъде настроен на нула (eyeroll в WordPress последователност). Третият параметър е действителното съдържание на файла.
get_post_field ()
В миналото видях доста примери, когато някой е написал цикъл, за да получи коментар за публикация, или е написал специална заявка за база данни. Вие не се нуждаете от тях, това, от което имате нужда, е
. Тази функция извлича стойността на едно поле за една публикация в базата данни. Нека вземем броя на коментарите!get_post_field ()
Тази публикация има коментари.
wpautop ()
Тази функция излезе в светлината на прожекторите малко, но тя все още е сравнително неизвестна. Той е подобен на PHP родния nl2br
но вместо да създава нови линии, то обвива съдържанието ви в параграфи.
Това е полезно, ако имате текстово поле и искате да сте сигурни, че когато потребителите създават абзаци с двойни прекъсвания на редове, те остават видими и в предния край,.
Какво казват нашите потребители
wp_is_mobile ()
Тази подходящо наречена функция открива, когато потребителят е на мобилно устройство и ви позволява да показвате съответно съдържание. Тъй като това е условен маркер, той връща true или false в зависимост от сценария.
Посетете нашия уебсайт на работния плот за по-богат потребителски опит
wp_redirect ()
Последният пример показва друга чиста функция:
. Това трябва да се използва вместо родния PHP wp_redirect ()
глава ()
функция. Функцията за пренасочване на WordPress ви позволява задайте URL адрес за пренасочване и задайте код за състояние, чудесно за справяне с постоянни пренасочвания.
// За URL адрес, който вече не се използва wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Обзалагам се, че тази функция дължи своята неизвестност отчасти на популярността на WP-PageNavi плъгина. По подразбиране WordPress показва предишните / следващите връзки в края на списъка ви за публикации. WP-PageNavi това се заменя с номера на страници.
Това всъщност може да бъде направено с малко работа с помощта на
функции. Има няколко параметъра, затова ви препоръчвам да погледнете документацията.paginate_links ()
Следният пример от codex показва как можете да го добавите към подразбиращия се цикъл, но добавянето му към персонализирани контури не е много голямо.
global $ wp_query; $ big = 999999999; // се нуждаят от малко вероятно echo paginate_links (масив ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => '? paged =% #%' , 'current' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Тази функция допълва PHP умрат ()
функция. Разликата е, че тази функция ще покаже HTML в стил WordPress вместо обикновен текст. Можете да използвате тази функция, за да спрете изпълнението на PHP. Можете да добавите съобщението, заглавието и допълнителните аргументи, които да се показват, например:
wp_die ("Ами сега, нямате достъп до", "Разрешението е отказано");
has_block ()
Във версия 5.0 WordPress представи блоков редактор, с кодово име Гутенберг. Тази функция ще определи дали съдържанието съдържа Gutenberg, съвсем същото с has_shortcode ()
функция. Ще се върне вярно
ако съдържанието съдържа блок или фалшив
ако не е така.
wp_set_script_translations ()
Тъй като много част от потребителския интерфейс на WordPress ще се премести в JavaScript, той се нуждае от удобен начин за регистриране на преведени текстове в JavaScript, които WordPress може да разбере и разбере. Използвайте тази функция, за да зададете преведени низове за вашите скриптове. По-долу е даден пример:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Друга важна функция в WordPress 5.0. Тази функция ви позволява да регистрирате нов блок в новия WordPress редактор. Блокът ви ще се появи в новия редактор и ще го вмъкне .
register_block_type ('my-plugin / new-block', array ('title' => 'Нов блок', 'икона' => 'мегафон', 'категория' => 'джаджи', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Тази функция ви позволява да осъществите повикване до крайните точки на WordPress REST чрез PHP. Много е полезно, когато трябва да извлечете изход от REST API, за да обработвате, че ще обработвате по-нататък в PHP страницата, вместо в браузъра (предния край).
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
При изграждането на тежки интерфейси на JavaScript в WordPress обикновено е необходим набор от първоначални данни, заредени в страницата. Това е функцията, която ще ви позволи да го направите. Тази функция е предназначена за използване във връзка с array_reduce
, например.
// Предварително зареждане на общи данни. $ preload_paths = array ('/', '/ wp / v2 / types? context = edit', '/ wp / v2 / taxonomies? per_page = -1 & context = edit', '/ wp / v2 / themes? status = active' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', масив ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'after');
заключение
Това са само някои функции, които изглеждат по-малко известни от останалите. Откривам една нова функция за всеки два месеца и съм сигурна, че моите приятели на разработчиците могат да ни изненадат още повече.
Ако имате любима неясна функция или функция, която би била полезна, но не е налична, уведомете ни в коментарите!