Intereting Posts
301 перенаправление от старого URL-структуры к новому Добавить поле пользователя по умолчанию для проверки WooCommerce Роли пользователей не застревают Переключитесь на шаблон страницы при использовании post permalink Добавить дополнительное поле для загрузки на страницу пользовательского заголовка Изменение положения меню Genesis Получить идентификатор страницы категории с или без каких-либо сообщений Редактирование файлов тем и доступа к страницам кода только для супер-администратора? Динамически настраивать запрос single-posttype.php на основе текущих таксономий Как сделать простое добавление, чтобы увеличить количество избранных моих сообщений WordPress Как получить входное значение плагина Widget Logic в пользовательском коде виджета (для отображения на странице администрирования Widget) Как перенаправить все запросы на страницу на страницу «прощай»? Перечисление атрибутов короткого кода в JavaScript Шаблон страницы как пользовательский тип типа сообщения Плагин WordPress обновляет / устанавливает файл как неизменный для предотвращения изменения определенных файлов?

Встраивайте / подключайте внешние веб-страницы в свой блог WordPress (например, Facebook захватывает изображение, название и описание)

Я хочу создавать сообщения WordPress, где я встраиваю внешние страницы. Как вы знаете, когда вы вставляете ссылку в Facebook, она автоматически захватывает изображение, заголовок и описание. И когда кто-то нажимает на нее, он направляется на исходный веб-сайт. Я использовал iframes, но он встраивает полную страницу. Я просто хочу показать его, как он появляется в Facebook. Я хочу собирать новости из Интернета на моей домашней странице. Если я могу добавить функциональность голосования пользователей в истории, это будет дополнительным преимуществом. PS: Я не программист. пример

Solutions Collecting From Web of "Встраивайте / подключайте внешние веб-страницы в свой блог WordPress (например, Facebook захватывает изображение, название и описание)"

Похоже, вы можете описывать вложения, поддерживаемые WordPress. На https://codex.wordpress.org/Embeds вы найдете длинный список поддерживаемых в настоящее время приложений просто на основе URL-адресов, добавленных в ваш редактор.

Для того, чтобы встраивать работу, она должна находиться в одной строке с пробелом выше и ниже. И, как правило, они создаются во the_content фильтра the_content .

Чтобы проверить, какие приложения вы в настоящее время поддерживаете, вы можете принудительно преобразовать встраивание с URL- wp_oembed_get($url) используя wp_oembed_get($url) .

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

  • Для не-OEmbed сайтов – wp_embed_register_handler( $id, $regex, $callback, $priority )
  • Для сайтов с поддержкой wp_oembed_add_provider( $format, $provider, $regex )wp_oembed_add_provider( $format, $provider, $regex ) .

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

Пример, заданный для пользовательской встраивания на не поддерживаемый oEmbed-сайт (измененный из @birgire ):

 /** * Embed support for Forbes videos * * Usage Example: * * http://www.forbes.com/video/5049647995001/ */ add_action( 'init', function() { wp_embed_register_handler( 'forbes', '#http://www\.forbes\.com/video/([\d]+)/?#i', 'wp_embed_handler_forbes' ); } ); function wp_embed_handler_forbes( $matches, $attr, $url, $rawattr ) { // construct the video embed $embed = sprintf( '<iframe class="forbes-video" src="https://players.brightcove.net/2097119709001/598f142b-5fda-4057-8ece-b03c43222b3f_default/index.html?videoId=%1$s" width="600" height="400" frameborder="0" scrolling="no"></iframe>', esc_attr( $matches[1] ) ); // pull information from the page $str = wp_remote_retrieve_body(wp_remote_get($url)); preg_match_all('/<head>(?:[^<]+)<title>([^<]+)<\/title>/', $str, $matches); $title = @$matches[1][0]; preg_match_all('/<meta name="description" itemprop="description" content="([^"]+)"/', $str, $matches); $description = @$matches[1][0]; preg_match_all('/<meta property="og:image" content="([^"]+)"/', $str, $matches); $image = @$matches[1][0]; // prepend extra info $embed = sprintf('<a href="%s" target="_blank" rel="noopener noreferrer" ><img src="%s"><h1>%s</h1></a><p>%s</p>%s', $url, $image, $title, $description, $embed); return apply_filters( 'embed_forbes', $embed, $matches, $attr, $url, $rawattr ); } 

Образец с:

 http://www.forbes.com/video/5049647995001/ http://www.forbes.com/video/5037500512001/ http://www.forbes.com/video/4284088649001/ http://www.forbes.com/video/5046852474001/ 

Хотя этот пример специально использует iframe вы можете построить что-либо из URL-адреса. Требуется дополнительное время, но вы, теоретически, можете вытащить URL-адрес и очистить детали для настройки визуального.

Для Facebook они используют службу http://developers.facebook.com/tools/lint/ для кэширования очищенного контента, а затем служат для кэширования данных. Вот почему иногда первая часть страницы занимает некоторое время, чтобы появиться. Если вы хотите ускорить этот процесс, у вас будет механизм для кеширования контента, который будет обслуживаться.