• Как настроить функцию wp_embed_register_handler
    для того, чтобы при вставке ссылки на сервис LearningApps (напр. http://LearningApps.org/display?v=pykjnmtht01) автоматически отображался контент?

    В справке wordpress нашел пример этой функции, но мне сложно понять, что необходимо поменять в нем:

    <?php
    
    wp_embed_register_handler( 'forbes', '#http://(?:www|video)\.forbes\.com/(?:video/embed/embed\.html|embedvideo/)\?show=([\d]+)&format=frame&height=([\d]+)&width=([\d]+)&video=(.+?)($|&)#i', 'wp_embed_handler_forbes' );
    
    function wp_embed_handler_forbes( $matches, $attr, $url, $rawattr ) {
    
    	$embed = sprintf(
    			'<iframe src="http://www.forbes.com/video/embed/embed.html?show=%1$s&format=frame&height=%2$s&width=%3$s&video=%4$s&mode=render" width="%3$spx" height="%2$spx" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>',
    			esc_attr($matches[1]),
    			esc_attr($matches[2]),
    			esc_attr($matches[3]),
    			esc_attr($matches[4])
    			);
    
    	return apply_filters( 'embed_forbes', $embed, $matches, $attr, $url, $rawattr );
    }
    
    ?>

    А вот какой код вставки должен получится для LearningApps

    <iframe src="//LearningApps.org/watch?v=pykjnmtht01" style="border:0px;width:100%;height:500px" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Как настроить функцию для того, чтобы при вставке ссылки на сервис автоматически отображался контент?

    А открытие по ссылке нужной страницы в всплывающем окне (фрейме) не устроит?

    Возможно устроит, только проблема в том, что это я делаю для buddypress, чтобы, когда человек вставлял ссылку в ленту активности, то пользователь должен иметь возможность просматривать приложение не покидая сайт

    Тогда не устроит. Я хотел предложить плагин, который может это делать. Но естественно это будет доступно только админу.

    Попробовал сам изменить код

    wp_embed_register_handler( 'learn', '/http:\/\/learningapps\.org\/display(\?v=.*)?/i', 'wp_embed_handler_learn' );
    
    function wp_embed_handler_learn( $matches, $attr, $url, $rawattr )
     {
    
    	$embed = sprintf(
    			'<iframe src="http://learningapps.org/display?v=%1$s" style="border:0px;width:100%;height:500px" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>',
    			esc_attr($matches[1])
    
    			);
    
    	return apply_filters( 'embed_learn', $embed, $matches, $attr, $url, $rawattr );
    }

    В результате, после вставки ссылки, появляется небольшая пустая область. т.е. как я думаю, ссылку вордпресс понимает, но не правильно отображает. Значит где-то ошибка. Пока не могу понять где.

    Домучил код, может кому-то пригодится:

    wp_embed_register_handler( 'learn', '/http:\/\/learningapps\.org\/watch\?v=([a-z0-9]+)/i', 'wp_embed_handler_learn' );
    
    function wp_embed_handler_learn( $matches, $attr, $url, $rawattr )
     {
    
    	$embed = sprintf(
    			'<iframe src="//learningapps.org/watch?v=%1$s" style="border:0px;width:500px;height:500px" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>',
    			esc_attr($matches[1])
    
    			);
    
    	return apply_filters( 'embed_learn', $embed, $matches, $attr, $url, $rawattr );
    }
Просмотр 5 ответов — с 1 по 5 (всего 5)

Тема «LearningApps вставка ссылки» закрыта для новых ответов.