Intereting Posts
Как получить атрибут title из get_the_post_thumbnail ()? Как показать разную временную метку Страница расписания в меню Как перенаправить пользователей на роль и содержание redirect_to? Случайные суммы в подтверждении заказа WooCommerce один файл, используемый мультиобъектом Как удалить метатег генератора WPML по функции functions.php темы (переопределить функцию плагина)? Как добавить класс в мета-окно Использование 'child_of' в get_pages () и wp_list_pages () Генератор случайных почтовых сообщений запутывает цикл Настройка подменю admin появляется только тогда, когда я привязался к пользовательской ссылке Отправлять уведомление по электронной почте администратору для каждой новой публикации Как отсортировать цикл после большинства просмотров (Разрешено) Как добавить кнопку подменю для переключения всех элементов «li», имеющих подменю? Попытка изменить версию jQuery вызвала белый экран смерти

Устаревший аудиокод

Недавно я переделал сайт, который был первоначально создан в 2011 году. Конечно, было несколько крупных проблем разработки, и одним из них является использование старого короткого кода:

[аудио: http: // localhost: 8888 / lusa / audio / 1310seg02.mp3]

Я не видел никакой документации о родном короткометражном коде WordPress с использованием двоеточия. Я также не смог найти плагин, который использует его таким образом.

Кто-нибудь знает, как я могу получить этот шорт-код? Я считаю, что мои варианты.

  1. Создайте скрипт, который превращает этот короткий код в новый формат "http: https://codex.wordpress.org/Audio_Shortcode .
  2. Найдите плагин, который изначально сделал этот короткий код.
  3. ?

/ ======== Прогресс ======== /

@gmazzap заставил меня на правильном пути! Проблема заключается в том, что при использовании shortcode_atts_audio переменная $ atts не выводит строки за пределами предопределенных атрибутов (src, loop, autoplay, preload.) После некоторого рытья я обнаружил, что могу использовать wp_audio_shortcode_override для доступа к моему URL. Это то, что я делаю в коде ниже. Но теперь мне не удается передать этот атрибут обратно в короткий код и вывести его.

function legacy_audio_shortcode_converter( $html, $attr ) { $colon_src = $attr[0]; //get the url string with the colon included. $attr['src'] = substr($colon_src, 1); //filter out the colon $new_audio_src = $attr['src']; //save the url as the official audio src var_dump($new_audio_src); //this is currently outputing the exact url I need but not sure how to make sure the player shows up with this new src. } add_filter( 'wp_audio_shortcode_override', 'legacy_audio_shortcode_converter', 10, 2 ); 

Solutions Collecting From Web of "Устаревший аудиокод"

Если ваша единственная проблема в том, что формат неверен, тогда переключите его в the_content с правильной версией.


Нелокальный контент:

 [audio:http://www.soundhelix.com/examples/mp3/SoundHelix-Song-7.mp3] 

Место в плагине или functions.php

 // hook earlier than 10 add_filter('the_content', 'wpse_20160110_the_content_fix_audio', 0); function wpse_20160110_the_content_fix_audio($content){ return str_replace ( '[audio:', '[audio src=', $content ); } 

Я думаю, вы можете использовать 'shortcode_atts_audio' фильтр, чтобы преобразовать аргументы в правильной форме и позволить обработчику коротких сообщений по умолчанию сделать его.

Фактически, с помощью [audio:http://localhost:8888/lusa/audio/1310seg02.mp3] , такого как [audio:http://localhost:8888/lusa/audio/1310seg02.mp3] обработчик [audio:http://localhost:8888/lusa/audio/1310seg02.mp3] будет вызываться с массивом аргументов, который

 array(0 => ':http://localhost:8888/lusa/audio/1310seg02.mp3'); 

Где должен быть правильный формат массива аргументов

 array('src' => 'http://localhost:8888/lusa/audio/1310seg02.mp3'); 

Таким образом, вы можете:

 add_filter( 'shortcode_atts_audio', function(array $atts) { if ( empty($atts['src']) && ! empty($atts[0]) && filter_var(ltrim($atts[0], ':'), FILTER_VALIDATE_URL) ) { $atts['src'] = ltrim($atts[0], ':'); } return $atts; } ); 

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

Непроверенный .