WordPress для меня как большой океан. У него большой набор отличных API, потрясающая функциональность, и вы можете создавать практически любые веб-сайты, какие только можете себе представить.
Но в этом большом океане как системе управления контентом, есть некоторые крошечные кусочки кода, которые упускаются из виду. В этом уроке мы кратко рассмотрим восемь интересных функций WordPress.
Этот, надеюсь, будет интересным уроком для большинства из вас. Я должен признать, что я был поражен некоторыми функциями, говоря: «Есть функция для этого?»
Некоторые из них могут быть не такими интересными, как другие, но я уверен, что вам понравится читать эту статью и узнавать об этих скрытых жемчужинах !
Скрытые адреса электронной почты в вашем контенте
Вам когда-нибудь приходилось делиться адресом электронной почты в своем блоге или на сайте WordPress? Скорее всего, у вас есть, и если вы когда-нибудь заботились о том, чтобы вас не поймали спам-роботы, которые просматривают в Интернете адреса электронной почты, номера телефонов и тому подобное, вы искали решение, чтобы скрыть адреса электронной почты от этих крошечных злых роботов.
 Я знаю, что у меня есть, и мало что я знал, для него уже была базовая функция WordPress: antispambot() . 
использование
Использование функции довольно просто:
| 1 2 3 4 5 | <?php $my_email_address = «my.secret.email.address@gmail.com»; $my_email_address_cloaked = antispambot( $my_email_address ); echo $my_email_address_cloaked; ?> | 
Но, конечно, вы не можете использовать PHP в своем контенте (если вы не используете плагин для этой цели). Чтобы использовать эту функцию в своем контенте, вы можете использовать небольшой шорткод, подобный приведенному ниже:
| 01 02 03 04 05 06 07 08 09 10 | <?php function antispambot_sc( $atts ) {     extract( shortcode_atts( array(         ’email’ => »     ), $atts ) );     return antispambot( $email ); } add_shortcode( ‘antispambot’, ‘antispambot_sc’ ); // Usage: [antispambot email=»my.cloaked.email.address@gmail.com»] ?> | 
Используя приведенный выше шорткод, вы можете скрывать адреса электронной почты в любом месте своих сообщений. Аккуратно, верно?
Разделение частей до и после тега More
  Это может быть моим любимым среди всех этих драгоценных камней : get_extended() позволяет буквально разделить две части, до и после <!--more--> . 
использование
  Использование тоже довольно просто.  Допустим, вы находитесь в файле single.php и собираетесь показывать рекламу между вступлением и остальной частью статьи.  Вот как вы делаете The Loop: 
| 01 02 03 04 05 06 07 08 09 10 11 12 | <?php while( have_posts() ) : the_post(); $content_parts = get_extended( get_the_content() ); echo ‘<h1 class=»post-title»>’ . echo ‘<p class=»intro»>’ . echo ‘<!— Paste your ad code here. echo ‘<div class=»article»>’ . endwhile; ?> | 
Отличное, но простое решение, не требующее дополнительного кода!
Исправление слова «WordPress» в автоматическом режиме
  Вот элемент «противоречия» этой статьи: очень обсуждаемая capital_P_dangit() . 
Как вы знаете, слово «WordPress» должно быть написано заглавной буквой W и заглавной буквой P. Эта крошечная функция «исправляет» неправильную прописную букву слова.
использование
| 1 2 3 4 5 | <?php $text = «WordPress is awesome!»; $corrected_text = capital_P_dangit( $text ); echo $corrected_text; ?> | 
Выглядит как забавная маленькая функция, но проблема в том, что WordPress Core настроен на принудительное выполнение этой функции в заголовке, содержании и комментариях. Джастин Тэдлок написал об этом около 4 лет назад , упомянув, что функция ломает URL. К счастью, проблема была исправлена в версии 3.0.1, но я вижу, что она все еще ломает вещи.
Например, если вы неправильно написали WordPress в примере кода, и для кода важен маленький «p», он нарушает код.
  К счастью, решение проблемы также простое.  Перейдите в файл functions.php вашей темы (или создайте новый плагин для этой проблемы) и вставьте следующий код: 
| 1 2 3 4 5 | <?php remove_filter( ‘the_title’, ‘capital_P_dangit’, 11 ); remove_filter( ‘the_content’, ‘capital_P_dangit’, 11 ); remove_filter( ‘comment_text’, ‘capital_P_dangit’, 31 ); ?> | 
Мое личное мнение: Да, я думаю, что использование слова «WordPress» с заглавной буквы чрезвычайно важно, и меня раздражает каждый раз, когда я вижу людей, пишущих «WordPress», но WordPress не должен заставлять людей отображать слово правильно.
Снятие шорткодов!
В некоторых случаях необходимо пропустить шорткоды текста: вы можете использовать часть содержимого для предварительного просмотра «Следующая публикация», возможно, вы переключились на новую тему и не хотите отображать тексты шорткодов которые больше не бегают и так далее.
  Когда это время наступит, strip_shortcodes() станет вашим другом. 
использование
В Кодексе есть очень хороший пример. Допустим, вам нужно удалить шорткоды на домашней странице, но разрешить их запуск на других страницах контента.
  Вот как вы должны использовать strip_shortcodes() : 
| 1 2 3 4 5 6 7 8 | <?php function remove_shortcode_from_index( $content ) {     if ( is_home() )         $content = strip_shortcodes( $content );     return $content; } add_filter( ‘the_content’, ‘remove_shortcode_from_index’ ); ?> | 
Быстро и просто.
Обновление правил перезаписи
  Если вы являетесь разработчиком плагинов (или разработчиком тем, которым по какой-то причине необходимо проникнуть на территорию плагинов ) и вам нужно добавить правило перезаписи для своей функции, вы должны сказать своим пользователям обновить правила перезаписи, посетив страницу на странице параметров Постоянные ссылки и нажав кнопку «Сохранить изменения» без каких-либо изменений, или вы можете сделать свой код для очистки самих правил перезаписи с помощью функции flush_rewrite_rules() ! 
использование
Продолжая приведенный выше пример, допустим, вы написали плагин, который вводит новый пользовательский тип записи. После активации и деактивации необходимо обновить правила перезаписи, чтобы постоянные ссылки вашего пользовательского типа работали:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php // Register Custom Post Type function portfolio_cpt() {     register_post_type( ‘portfolio’,         array(             ‘labels’ => array(                 ‘name’ => __( ‘Portfolios’, ‘my-locale’ ),                 ‘singular_name’ => __( ‘Portfolio’, ‘my-locale’ )             ),         ‘public’ => true,         ‘has_archive’ => true,         )     ); } add_action( ‘init’, ‘portfolio_cpt’, 0 ); function myplugin_activate() {     portfolio_cpt();     flush_rewrite_rules(); } register_activation_hook( __FILE__, ‘myplugin_activate’ ); function myplugin_deactivate() {     flush_rewrite_rules(); } register_deactivation_hook( __FILE__, ‘myplugin_deactivate’ ); ?> | 
Кодекс выражает, что очистка правил перезаписи является дорогой функцией с точки зрения использования ресурсов сервера. Вот почему мы должны делать это только при активации и деактивации вашего плагина или темы.
Эта, пожалуй, самая известная функция среди этих скрытых жемчужин, но я понял, что многие разработчики WordPress, похоже, забывают об этой полезной маленькой функции.
Если вы имеете дело с какими-либо правилами переписывания (например, если вы создаете новый тип записи или таксономию), вам следует помнить об этой функции.
Обнаружение мобильных посетителей вашего сайта
  Как и strip_shortcodes() , wp_is_mobile() также легко объяснить: он позволяет обнаруживать пользователей, которые используют мобильные устройства для подключения к вашему веб-сайту. 
использование
| 1 2 3 4 5 6 7 | <?php if( wp_is_mobile() ) {     // echo the «HAVE YOU TRIED OUR AWESOME MOBILE APP?» } else {     // don’t echo the banner } ?> | 
Идеальный инструмент адаптивного веб-дизайна , если вы спросите меня. Кроме того, вы можете удалить некоторые элементы, которые не имеют отношения к мобильным пользователям, или добавить такие, как баннер для вашего мобильного приложения.
Постановка в очередь CSS
  Всегда нужно было включить переменную, встроенный стиль для вашего плагина или темы?  Конечно ты сделал!  Постановка в очередь внешних CSS-файлов с помощью функции WordPress ‘ wp_enqueue_style() (и ее компаньонов) довольно удобна, но ей не хватает функциональности для включения встроенных стилей CSS. 
  Ну, по крайней мере, я так думал, прежде чем wp_add_inline_style() функцию wp_add_inline_style() . 
использование
| 01 02 03 04 05 06 07 08 09 10 11 | <?php $custom_style_file = get_template_directory_uri() . function custom_styles() {     wp_enqueue_style( ‘custom-style’, $custom_style_file );     $headline_font_weight = get_theme_mod( ‘headline-font-weight’ );     $custom_style = ‘.headline { font-weight: ‘ .     wp_add_inline_style( ‘custom-inline-style’, $custom_style ); } add_action( ‘wp_enqueue_scripts’, ‘custom_styles’ ); ?> | 
Честно говоря, я давно не знал эту функцию. Это могло бы сэкономить мне много времени, если бы я знал это раньше.
Проверка, если вы в петле
  Разработчикам тем и плагинов может потребоваться проверить, будет ли их код запускаться в цикле или нет.  Как следует из названия, in_the_loop() дает ответ легко. 
использование
| 1 2 3 4 5 6 7 | <?php if( in_the_loop() ) {     // do something loop-related } else {     // don’t do anything or display some kind of error/warning } ?> | 
  Вероятно, самый простой для использования среди функций в этой статье, наряду с wp_is_mobile() . 
Заворачивая все
Как вы можете видеть из того, что мы рассмотрели в статье, в ядре WordPress и Справочнике по функциям в Кодексе есть несколько довольно полезных функций. Возможно, вы слышали о некоторых из них, но держу пари, что вы не знали о них все, верно?
Вы знаете какие-нибудь основные функции WordPress, подобные этим? Поделитесь своими знаниями с нами, комментируя ниже!
И если вам понравилась статья, не забудьте поделиться ею с друзьями!