Я просмотрел множество подобных вопросов, и я не понимаю, что касается моего кода.
Ошибка: Strict Standards: Only variables should be passed by reference in wordpress/wp-includes/class-oembed.php on line 116
и вот мой код ….
// Get Ready Display the Audio $embedCheck = array("<embed", "<ifram");// only checking against the first 6 $mykey_values = get_post_custom_values('_format_audio_embed'); $content_oembed = ''; // check if the audio metabox is used if ( isset($mykey_values) && !empty($mykey_values) ) { // iterate over values passed foreach ( $mykey_values as $key => $value ) { $url = $value; $wtf = wp_oembed_get($url); if ( !empty($url) ) { $firstCar = substr($url, 0, 6); // get the first 6 char. // if its a http(s). if ( strpos($firstCar, "http:/" ) !== false || strpos($firstCar, "https:" ) !== false ) { // send it to wp_oembed to see if the link is oembed enabled. $content_oembed = ($wtf !==false) ? ('"<div class="audio" style="width:100%; overflow:hidden;">' .$wtf.'</div>') : ('<audio src="'.$url.'" preload="none" type="audio/mpeg"></audio>'); } // if its the embed code that matches our array defined above. else if ( audio_strpos_arr($firstCar, $embedCheck ) !== false ) { $content_oembed = '<div class="video" style="width:100%; overflow:hidden;">' .$url. '</div>'; } } }; // end foreach } // end conditional
Если я удалю раздел в условном выражении ниже комментария «отправьте его на wp_oembed, чтобы проверить, включена ли ссылка, включенная.», Но еще страннее, если я передам ему ссылку soundcloud – нет ошибки, но если ее локально размещенный файл сгибается.
Любая помощь будет принята с благодарностью.
после небольшого перекоса – кажется, проблема связана с этой функцией http://codex.wordpress.org/Function_Reference/wp_oembed_get
и то, что ссылается на incldued class-oembed.php, говорит следующее в строке 116
112 function discover( $url ) { 113 $providers = array(); 114 115 // Fetch URL content 116 if ( $html = wp_remote_retrieve_body( wp_safe_remote_get( $url ) ) ) {
Вы не должны использовать назначения ( =
) внутри вашего тернарного выражения, поскольку у вас возникнут проблемы с приоритетом оператора.
Вы могли бы написать его так:
$content_oembed = (wp_oembed_get($url) !==false) ? ('<div class="audio" style="width:100%; overflow:hidden;">' . wp_oembed_get($url).'</div>') : ('<audio src="'.$url.'" preload="none" type="audio/mpeg"></audio>');
пока я избегаю использования wp_oembed_get в целом путем замены моих условных выражений, и если это не iframe или использование следующего, которое, по-видимому, определяет, будет ли его локально размещенная или oembed ссылка автоматически ….
global $wp_embed; $post_embed = $wp_embed->run_shortcode('[embed]'.$url.'[/embed]');
и затем echo'ing $ post_embed