Intereting Posts
Показывать и фильтровать вложенные пользовательские сообщения Как добавить кнопку Open / Close Toggle в тему Twenty Fifteen для скрытия левой боковой панели? Как я могу ввести html после -го виджета внутри боковой панели? Каково максимальное количество сообщений, с которыми может работать цикл WordPress? Случайные перенаправления HTTP-адресов в области администрирования на общем хостинге Объединение сайта WordPress с Java EE для создания сервлета Удалить категорию из URL Я случайно добавил область виджетов, называемую боковой панелью 1 Получить все идентификаторы изображений из медиа-библиотеки Разбивка страницы на домашней странице не работает Отсутствует ссылка на ссылку 3.02 / 3.03 на панели инструментов Закрытый класс html после счетчика = несколько из 3 get_the_post_thumbnail wordpress 3.5 Какие возможности мне не хватает для отображения? Пользовательские типы сообщений и страницы архива тегов / проблема структуры ссылок

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

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

Если ваша единственная проблема в том, что формат неверен, тогда переключите его в 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; } ); 

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

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