Головна » WordPress » 15 Корисні функції WordPress Всі розробники повинні знати

    15 Корисні функції WordPress Всі розробники повинні знати

    WordPress наповнений великими функціями, які ми використовуємо розробниками. Ми можемо витягувати поштові списки з неба, маніпулювати майже всіма ними, захоплювати будь-якого користувача, якого хочемо, і показувати їхні соціальні медіа під час відразу.

    Однак існує досить багато функцій, які, здається, невідомі з невідомих причин. Я кодував з WordPress близько 8 років, і іноді я все ще знаходжу щось нове! Давайте подивимося на деякі з моїх улюблені функції і навчитися використовувати їх на цьому шляху.

    antispambot ()

    Зазвичай я піднімаю кілька брів, але це, здається, одна з найбільш прихованих функцій кодової бази.. antispambot () замінює символи з об'єктами HTML, що є одним із способів маски адрес електронної пошти від злих скребків.

     $ 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); 

    Навіть якщо ви тільки захоплюєте дані для однієї клавіші, все постмета витягується.

    Причина насправді досить логічна. Метадані використовуються в декількох місцях. Якщо 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 ()

    Останній приклад показує іншу акуратну функцію: wp_redirect (). Це має використовуватися замість рідної PHP header () функції. Функція перенаправлення WordPress дозволяє встановити URL-адресу для переадресації, а також встановити код стану, велика для обробки постійних переадресацій.

     // Для URL, який більше не використовується wp_redirect ('http://website.com/new-url/', 301); 

    paginate_links ()

    Я впевнений, що ця функція зобов'язана своєю невідомістю частково популярністю модуля WP-PageNavi. За замовчуванням WordPress відображає попередні / наступні посилання в кінці списку публікацій. WP-PageNavi замінює це номерами сторінок.

    Це може бути зроблено з невеликою кількістю роботи за допомогою paginate_links () функції. Вона має досить багато параметрів, тому я рекомендую зазирнути в документацію.

    Наступний приклад з кодексу показує, як ви можете додати його до циклу за замовчуванням, але додавання його до спеціальних циклів не є значною мірою.

     global $ wp_query; $ big = 999999999; // потрібен нереальний цілий ехо 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 die () функції. Відмінність полягає в тому, що ця функція відображатиме HTML у стилі WordPress замість простого тексту. Ви можете використовувати цю функцію для зупинки виконання PHP. Можна додати повідомлення, назву та додаткові аргументи, які будуть відображатися, наприклад:

     wp_die ("На жаль, у вас немає доступу до" "," Відхилено дозвіл "); 

    has_block ()

    У версії 5.0 WordPress представив блок-редактор, під кодовою назвою Гутенберг. Ця функція визначатиме, чи вміст містить Гутенберга, те ж саме з 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', масив ('title' => 'Новий блок', 'icon' => 'мегафон', 'категорія' => 'віджети', 'render_callback' => 'render_function_callback' ,));

    rest_do_request ()

    Ця функція дозволяє здійснювати виклик кінцевим точкам API 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'); 

    Висновок

    Це лише деякі функції, які здаються менш відомими, ніж інші. Я відкриваю нову чудову функцію кожні два місяці, і я впевнений, що мої друзі-розробники можуть здивувати нас ще далі.

    Якщо у вас є улюблена неясна функція або функція, яка буде корисною, але недоступною, повідомте нам про це в коментарях!