Intereting Posts
Класс Walker: выходное описание родителя и избранное изображение сразу после подменю? Создание настраиваемого фида для категорий, который включает в себя изображение с первым сообщением Создание плагина с легкими мультимедийными тегами с пользовательской таксономией WP REST API и Access-Control-Allow-Origin Расположение базы данных в WordPress Доступ к настраиваемым параметрам URL searchform.php не работает должным образом Лучшая практика для PHP Как добавить пользовательский статус для быстрого редактирования Noindex, nofollow застрял на главной странице Проблема перенаправляет «блог» на «новости» в WordPress с использованием .htaccess Ошибка PHP при попытке загрузить файлы .mp3 через медиа-библиотеку Как найти все ссылки между страницами Как получить роль Подписаться на пользователей в меню администратора только в Pages in WordPress Получить список пользовательских сообщений для каждого короткого кода категории

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

Недавно я переделал сайт, который был первоначально создан в 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; } ); 

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

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