Intereting Posts
Рекомендуемые инструменты для разработки темы с помощью SASS Две контактные формы 7 на одной странице Фильтр категории ajax Как добавить класс или идентификатор к пункту меню, добавленному с помощью add_theme_page () Вкладки справки с помощью: add_help_tab () обратного вызова – Как работает аргумент? Как я могу сделать свои избранные списки внутри категории, чтобы показывать первую, а другие не отображаемые списки случайным образом после wordpress не отображает мою форму Отображать таксономию детей до последнего ребенка Почему моя петля повторяется? Как проверить для sanitize_URL? ABSPATH не работает! Любая идея почему? Multisite – получение 404 для дополнительного сайта, созданного с использованием субдомена is_taxonomy () не работает Как я могу аутентифицировать учетные данные пользователя для экземпляра 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/ для кэширования очищенного контента, а затем служат для кэширования данных. Вот почему иногда первая часть страницы занимает некоторое время, чтобы появиться. Если вы хотите ускорить этот процесс, у вас будет механизм для кеширования контента, который будет обслуживаться.