Intereting Posts
Установите и активируйте плагины через 200 приложений WordPress через SSH Обновить страницу после update_post_meta WP Plugin для условий использования Условный, который проверяет, имеет ли текущая категория какая-либо подкатегория с сообщениями Как локализовать массив данных на странице опций плагина Htaccess перенаправляет из '/%postname%.html' в '/% postname%' Не удается центрировать миниатюру с помощью бутстрапа Список «n» количество сообщений из тега, каждый с другим классом или идентификатором Правильно ли создавать страницу только для создания страницы листинга (например, для персонализированного типа сообщения) Верхняя панель администратора / панель инструментов не отображается даже при входе в систему, но отображается пустое верхнее поле? Создание меню, содержащего категории и авторов pre_get_posts возвращает объект non property при использовании posts__not_in Перенаправление wp-login Как добавить пользовательский Colum на вкладке «Галерея мультимедиа Thickbox»? Показать только, если x комментариев?

Как работает короткий код?

Я знаю, как использовать короткие коды, даже делая их, но то, что мне нужно понять, – это то, что короткий код – это обычный текст, хранящийся в базе данных, как почтовый контент. Так как простой текст, подобный этому, можно преобразовать в динамический.

Я хочу знать, как обрабатывать текст x до того, как сервер отправит его в браузер, чтобы вести себя дефферентно?

Solutions Collecting From Web of "Как работает короткий код?"

При использовании the_content() WordPress запускает несколько фильтров для обработки текста, поступающего из редактора. Эти фильтры обрабатывают контент до его отправки в браузер. do_shortcode – это фильтр, который обрабатывает короткие коды.

Из /wp-includes/default-filters.php :

 // Shortcodes add_filter( 'the_content', 'do_shortcode', 11 ); // AFTER wpautop() 

do_shortcode() используется для поиска содержимого для коротких кодов и фильтрации коротких кодов через их крючки.

Вы можете применить фильтр do_shortcode к любой строке. Например, если у вас есть мета-поле с текстовой областью, и вы хотите разрешить пользователям вводить короткие текстовые поля, вы можете do_shortcode фильтр do_shortcode для его обработки.

Пример короткого кода:

 [my-shortcode param1=something param2=value]Text...[/my-shortcode] 

Когда WordPress находит этот shortcode в контенте, он будет запускать функцию, связанную с тегом shortcode my-shortcode .

 /** * An example shortcode. * * @param array $atts * @param string $content * @param string $tag Shortcode tag * @return string */ add_shortcode( 'my-shortcode', 'wpse_example_shortcode' ); function wpse_example_shortcode( $atts, $content = '', $tag ) { $a = shortcode_atts( [ 'param1' => false, 'param2' => false, ], $atts ); // code... return $content . '!!!'; } 

В этом случае WordPress будет запускать функцию wpse_example_shortcode() передавая $atts (параметры и их значения, например param1, param2), $content ( Text … ) и $tag (используемый тэг shortcode, my-shortcode ).

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

Вот небольшая заметка:

API-интерфейс preg_replace_callback развивается вокруг preg_replace_callback где мы определяем пользовательские обратные вызовы с нашими определениями коротких кодов.

Штрих-коды в тексте обрабатываются сложным шаблоном регулярных выражений, который вы можете проверить в get_shortcode_regex() .

Реализация этого в ядре усложняется, когда мы выкладываем детали 😉