WordPress 4.4 oEmbed 埋め込みカードの仕組みと注意点!!

WordPress 4.4 から標準で oEmbed 埋め込みカード機能が追加されましたが、その仕組みと使用上の注意点を紹介します

はじめにどんな仕組みかをちょっと見てみましょう

WordPress4.4 embed カードの仕組み

例えば wordpress4.4 を紹介する記事のブログカードを作成したいとします

下記サイトを例に説明します

wp4.4-news-site-image

サイトを表示してURL(https://wordpress.org/news/2015/12/clifford/)をコピーします

そのURLを、記事編集 TinyMCE のビジュアルモードで貼り付けると、その瞬間にバックグランドで様々な通信がおこなわれることとなります

oEmbedは、youtube や Flickr 等様々なサービスで使われており、WordPressではサポートしているサービスごとにURLパターンが登録されています

従って、そのURLパターンに一致するURLが貼り付けられた場合は、それに対応する youtube 等のサービスへ oEmbed リクエストを発行して埋め込み用コードを取得していました

WP4.4では、そのような大手サービスだけでなくページ内に oEmbed 用のタグが含まれていれば、それを利用して埋め込み用コードが取得出来るようになりました

oEmbed リクエスト用のプロバイダーデータの検出

先ほどのサイト(https://wordpress.org/news/2015/12/clifford/)では、youtube等の登録済みのURLパターンには一致しませんので、そのページのHTMLが読み込まれ、このようなデータが取得されます

"<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head profile="http://gmpg.org/xfn/11">
<meta charset="utf-8" />
<!--
<meta property="fb:page_id" content="6427302910" />
-->
<link href="https://plus.google.com/107188080561309681193" rel="publisher" />
<meta name="google-site-verification" content="7VWES_-rcHBcmaQis9mSYamPfNwE03f4vyTj4pfuAw0" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>WordPress &#8250;   WordPress 4.4 &#8220;Clifford&#8221;</title>
<meta name="referrer" content="always">
<link href="//s.w.org/wp-includes/css/dashicons.css?20150710" rel="stylesheet" type="text/css" />
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,300,600&subset=latin,cyrillic-ext,greek-ext,greek,vietnamese,latin-ext,cyrillic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//s.w.org/style/wp4.css?38" />
<link media="only screen and (max-device-width: 480px)" href="//s.w.org/style/iphone.css?1" type="text/css" rel="stylesheet" />
<link rel="shortcut icon" href="//s.w.org/favicon.ico?2" type="image/x-icon" />

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-52447-1']);
_gaq.push(['_setDomainName', 'wordpress.org']);
_gaq.push(['_trackPageview']);
(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
function recordOutboundLink(link, category, action) {
	_gaq.push(['_trackEvent', category, action])
	setTimeout('document.location = "' + link.href + '"', 100);
}
</script>
<!--[if lte IE 8]>
<style type="text/css">
@import url("//s.w.org/style/ie.css?1");
</style>
<![endif]-->
<link rel="pingback" href="https://wordpress.org/news/xmlrpc.php" /><link rel="alternate" type="application/rss+xml" title="WordPress News &raquo; Feed" href="https://wordpress.org/news/feed/" />
<link rel="alternate" type="application/rss+xml" title="WordPress News &raquo; Comments Feed" href="https://wordpress.org/news/comments/feed/" />
		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"https:\/\/wordpress.org\/news\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.5-alpha-35990"}};
			!function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&&c.getContext("2d");return d&&d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56806,55356,56826),0,0),c.toDataURL().length>3e3):("simple"===a?d.fillText(String.fromCharCode(55357,56835),0,0):d.fillText(String.fromCharCode(55356,57135),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag"),unicode8:d("unicode8")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag&&c.supports.unicode8||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<style type="text/css">
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 .07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>
<link rel='stylesheet' id='blog-wp4-css'  href='https://wordpress.org/style/blog-wp4.css?ver=15' type='text/css' media='all' />
<link rel='stylesheet' id='genericons-css'  href='https://wordpress.org/news/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' type='text/css' media='all' />
<link rel='stylesheet' id='jetpack_css-css'  href='https://wordpress.org/news/wp-content/plugins/jetpack/css/jetpack.css?ver=3.7.2' type='text/css' media='all' />
<script type='text/javascript' src='https://wordpress.org/news/wp-includes/js/jquery/jquery.js?ver=1.11.3'></script>
<script type='text/javascript' src='https://wordpress.org/news/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script>
<link rel='https://api.w.org/' href='https://wordpress.org/news/wp-json/' />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://wordpress.org/news/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://wordpress.org/news/wp-includes/wlwmanifest.xml" /> 
<link rel='prev' title='WordPress 4.4 Release Candidate' href='https://wordpress.org/news/2015/11/wordpress-4-4-release-candidate/' />
<meta name="generator" content="WordPress 4.5-alpha-35990" />
<link rel="canonical" href="https://wordpress.org/news/2015/12/clifford/" />
<link rel='shortlink' href='https://wp.me/sZhYe-clifford' />
<link rel="alternate" type="application/json+oembed" href="https://wordpress.org/news/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwordpress.org%2Fnews%2F2015%2F12%2Fclifford%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://wordpress.org/news/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwordpress.org%2Fnews%2F2015%2F12%2Fclifford%2F&#038;format=xml" />

<link rel='dns-prefetch' href='//i0.wp.com'>
<link rel='dns-prefetch' href='//i1.wp.com'>
<link rel='dns-prefetch' href='//i2.wp.com'>
<link rel='dns-prefetch' href='//widgets.wp.com'>
<link rel='dns-prefetch' href='//s0.wp.com'>
<link rel='dns-prefetch' href='//0.gravatar.com'>
<link rel='dns-prefetch' href='//1.gravatar.com'>
<link rel='dns-prefetch' href='//2.gravatar.com'>
<link rel='dns-prefetch' href='//v0.wordpress.com'>

<!-- Jetpack Open Graph Tags -->
<meta property="og:type" content="article" />
<meta property="og:title" content="WordPress 4.4 &#8220;Clifford&#8221;" />
<meta property="og:url" content="https://wordpress.org/news/2015/12/clifford/" />
<meta property="og:description" content="Version 4.4 of WordPress, named “Clifford” in honor of jazz trumpeter Clifford Brown, is available for download or update in your WordPress dashboard. New features in 4.4 make your site more connec…" />
<meta property="article:published_time" content="2015-12-08T03:25:47+00:00" />
<meta property="article:modified_time" content="2015-12-09T13:15:23+00:00" />
<meta property="og:site_name" content="WordPress News" />
<meta property="og:image" content="https://wordpress.org/news/files/2015/12/ipad-white-desktop-2x.png" />
<meta property="og:image:width" content="1680" />
<meta property="og:image:height" content="1139" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:site" content="@WordPress" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:creator" content="@WordPress" />
<style type="text/css" id="syntaxhighlighteranchor"></style>
<script>document.cookie='devicePixelRatio='+((window.devicePixelRatio === undefined) ? 1 : window.devicePixelRatio)+'; path=/';</script>
<script type="text/javascript">
var toggleMenu = function(){
    var m = document.getElementById('wporg-header-menu'),
        c = m.className;
	    m.className = c.match( ' active' ) ? c.replace( ' active', '' ) : c + ' active';
}
</script>

</head>

<body id="wordpress-org" class="single single-post postid-3990 single-format-standard wporg-responsive wporg-blog-news">
<div id="wporg-header">
	<div class="wrapper">
	<a id="mobile-menu-button" class="" href="#" onclick="toggleMenu();"></a>
	<h1><a href="//wordpress.org">WordPress.org</a></h1>				<div id="head-search">
		<form action="//wordpress.org/search/do-search.php" method="get">
			<label for="global-search" class="screen-reader-text">Search WordPress.org for:</label>
			<input id="global-search" class="text" name="search" type="text" value="" maxlength="150" placeholder="Search WordPress.org" /> <input type="submit" class="button" value="" />
		</form>
		</div>
				<div style="clear:both"></div>
		
<ul id="wporg-header-menu">
<li><a href='//wordpress.org/showcase/' title='See some of the sites built on WordPress.'>Showcase</a></li>
<li><a href='//wordpress.org/themes/' title='Find just the right look for your website.'>Themes</a></li>
<li><a href='//wordpress.org/plugins/' title='Plugins can extend WordPress to do almost anything you can imagine.'>Plugins</a></li>
<li><a href='//wordpress.org/mobile/' title='Take your website on the go!'>Mobile</a></li>
<li><a href='//wordpress.org/support/' title='Forums, documentation, help.'>Support</a><ul class="nav-submenu"><li><a href='//wordpress.org/support/' title='Support and discussion forums.'>Forums</a></li><li><a href='//codex.wordpress.org/Main_Page' title='Documentation, tutorials, best practices.'>Documentation</a></li></ul><div class="uparrow"></div></li>
<li><a href='//make.wordpress.org/' title='Contribute your knowledge.'>Get Involved</a></li>
<li><a href='//wordpress.org/about/' title='About the WordPress Organization, and where we&#039;re going.'>About</a></li>
<li><a href='//wordpress.org/news/' title='Come here for the latest scoop.' class="current">Blog</a><div class="uparrow"></div></li>
<li><a href='//wordpress.org/hosting/' title='Find a home for your blog.'>Hosting</a></li>
<li id="download" class="button download-button"><a href='//wordpress.org/download/' title='Get it. Got it? Good.'>Download WordPress</a></li>
</ul>
		<div style="clear:both"></div>
	</div>
</div>



<div id="pagebody">
	<div class="wrapper">
		<div class="col-9">

<h2 class="fancy"><a href="https://wordpress.org/news/2015/12/clifford/">WordPress 4.4 &#8220;Clifford&#8221;</a></h2>

<div class="meta">Posted December 8, 2015 by <a href="https://profiles.wordpress.org/matt">Matt Mullenweg</a>. Filed under <a href="https://wordpress.org/news/category/releases/" rel="category tag">Releases</a>. </div>
 <div class="storycontent">
	<p>Version 4.4 of WordPress, named “Clifford” in honor of jazz trumpeter Clifford Brown, is available for download or update in your WordPress dashboard. New features in 4.4 make your site more connected and responsive. Clifford also introduces a new default theme, Twenty Sixteen.</p>
<p><iframe width='692' height='388' src='https://videopress.com/embed/J44FHXvg?hd=0' frameborder='0' allowfullscreen></iframe><script src='https://v0.wordpress.com/js/next/videopress-iframe.js?m=1435166243'></script></p>
<hr />
<h2 style="text-align: center">Introducing Twenty Sixteen</h2>
<p><img class="aligncenter size-full wp-image-3994" src="https://wordpress.org/news/files/2015/12/ipad-white-desktop-2x.png" alt="A screenshot of Twenty Sixteen set in an iPad frame" width="1680" height="1139" srcset="https://wordpress.org/news/files/2015/12/ipad-white-desktop-2x-300x203.png 300w, https://wordpress.org/news/files/2015/12/ipad-white-desktop-2x-768x521.png 768w, https://wordpress.org/news/files/2015/12/ipad-white-desktop-2x-1024x694.png 1024w" sizes="(max-width: 1680px) 100vw, 1680px" /></p>
<p>Our newest default theme, Twenty Sixteen, is a modern take on a classic blog design.</p>
<p>Twenty Sixteen was built to look great on any device. A fluid grid design, flexible header, fun color schemes, and more, will all make your content shine.</p>
<hr />
<h2 style="text-align: center">Responsive Images</h2>
<p><img class="aligncenter wp-image-3995 size-full" src="https://wordpress.org/news/files/2015/12/responsive-devices-ipad-2x.png" alt="An image of a laptop, iPad, Android phone, and iPhone containing the same image displayed at multiple sizes to demonstrate responsive image features." width="1396" height="640" srcset="https://wordpress.org/news/files/2015/12/responsive-devices-ipad-2x-300x138.png 300w, https://wordpress.org/news/files/2015/12/responsive-devices-ipad-2x-768x352.png 768w, https://wordpress.org/news/files/2015/12/responsive-devices-ipad-2x-1024x469.png 1024w, https://wordpress.org/news/files/2015/12/responsive-devices-ipad-2x.png 1396w" sizes="(max-width: 1396px) 100vw, 1396px" /></p>
<p>WordPress now takes a smarter approach to displaying appropriate image sizes on any device, ensuring a perfect fit every time. You don’t need to do anything to your theme, it just works.</p>
<hr />
<h2 style="text-align: center">Embed Everything</h2>
<div class="embed-container">
<blockquote data-secret="wv4RlzOPNS" class="wp-embedded-content"><p><a href="https://make.wordpress.org/core/2015/10/28/new-embeds-feature-in-wordpress-4-4/">New Embeds Feature in WordPress 4.4</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="display:none;" src="https://make.wordpress.org/core/2015/10/28/new-embeds-feature-in-wordpress-4-4/embed/#?secret=wv4RlzOPNS" data-secret="wv4RlzOPNS" width="600" height="338" title="Embedded WordPress Post" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div>
<p>Now you can embed your posts on other WordPress sites. Simply drop a post URL into the editor and see an instant embed preview, complete with the title, excerpt, and featured image if you’ve set one. We’ll even include your site icon and links for comments and sharing.</p>
<p>In addition to post embeds, WordPress 4.4 also adds support for five new oEmbed providers: Cloudup, Reddit Comments, ReverbNation, Speaker Deck, and VideoPress.</p>
<hr />
<h2 style="text-align: center">Under the Hood</h2>
<p><img class="aligncenter size-full wp-image-4003" src="https://wordpress.org/news/files/2015/12/banner-1544x500.jpg" alt="The WordPress REST API logo" width="1544" height="500" srcset="https://wordpress.org/news/files/2015/12/banner-1544x500-300x97.jpg 300w, https://wordpress.org/news/files/2015/12/banner-1544x500-768x249.jpg 768w, https://wordpress.org/news/files/2015/12/banner-1544x500-1024x332.jpg 1024w, https://wordpress.org/news/files/2015/12/banner-1544x500.jpg 1544w" sizes="(max-width: 1544px) 100vw, 1544px" /></p>
<h3>REST API infrastructure</h3>
<p>Infrastructure for the REST API has been integrated into core, marking a new era in developing with WordPress. The REST API gives developers an easy way to build and extend RESTful APIs on top of WordPress.</p>
<p>Infrastructure is the first part of a multi-stage rollout for the REST API. Inclusion of core endpoints is targeted for an upcoming release. To get a sneak peek of the core endpoints, and for more information on extending the REST API, check out the official <a href="https://wordpress.org/plugins/rest-api/">WordPress REST API</a> plugin.</p>
<h3>Term meta</h3>
<p>Terms now support metadata, just like posts. See <a href="https://developer.wordpress.org/reference/functions/add_term_meta"><code>add_term_meta()</code></a>, <a href="https://developer.wordpress.org/reference/functions/get_term_meta"><code>get_term_meta()</code></a>, and <a href="https://developer.wordpress.org/reference/functions/update_term_meta"><code>update_term_meta()</code></a> for more information.</p>
<h3>Comment query improvements</h3>
<p>Comment queries now have cache handling to improve performance. New arguments in <code>WP_Comment_Query</code> make crafting robust comment queries simpler.</p>
<div class="feature-section under-the-hood three-col">
<div class="col">
<h3>Term, comment, and network objects</h3>
<p>New <code>WP_Term</code>, <code>WP_Comment</code>, and <code>WP_Network</code> objects make interacting with terms, comments, and networks more predictable and intuitive in code.</p>
</div>
</div>
<hr />
<h2>The Team</h2>
<p><a class="alignleft" href="https://profiles.wordpress.org/wonderboymusic"><img src="https://www.gravatar.com/avatar/ed0f881acb9dc96bee53e4dc61b5558f?d=mm&amp;s=180&amp;r=G" alt="Scott Taylor" width="80" height="80" /></a>This release was led by <a href="http://scotty-t.com/">Scott Taylor</a>, with the help of these fine individuals. There are 471 contributors with props in this release (by far the most ever!). Pull up some Clifford Brown on your music service of choice, and check out some of their profiles:</p>
<a href="https://profiles.wordpress.org/mercime">@mercime</a>, <a href="https://profiles.wordpress.org/_smartik_">_smartik_</a>, <a href="https://profiles.wordpress.org/a5hleyrich">A5hleyRich</a>, <a href="https://profiles.wordpress.org/aaroncampbell">Aaron D. Campbell</a>, <a href="https://profiles.wordpress.org/jorbin">Aaron Jorbin</a>, <a href="https://profiles.wordpress.org/aaronrutley">Aaron Rutley</a>, <a href="https://profiles.wordpress.org/kawauso">Adam Harley (Kawauso)</a>, <a href="https://profiles.wordpress.org/adamsilverstein">Adam Silverstein</a>, <a href="https://profiles.wordpress.org/adamholisky">adamholisky</a>, <a href="https://profiles.wordpress.org/aduth">aduth</a>, <a href="https://profiles.wordpress.org/mrahmadawais">Ahmad Awais</a>, <a href="https://profiles.wordpress.org/akibjorklund">Aki Bj&#246;rklund</a>, <a href="https://profiles.wordpress.org/albertoct">AlbertoCT</a>, <a href="https://profiles.wordpress.org/akirk">Alex Kirk</a>, <a href="https://profiles.wordpress.org/viper007bond">Alex Mills (Viper007Bond)</a>, <a href="https://profiles.wordpress.org/tellyworth">Alex Shiels</a>, <a href="https://profiles.wordpress.org/gounder">Alexander Gounder</a>, <a href="https://profiles.wordpress.org/alireza1375">alireza1375</a>, <a href="https://profiles.wordpress.org/shedonist">Amanda Giles</a>, <a href="https://profiles.wordpress.org/amereservant">amereservant</a>, <a href="https://profiles.wordpress.org/sabreuse">Amy Hendrix (sabreuse)</a>, <a href="https://profiles.wordpress.org/afercia">Andrea Fercia</a>, <a href="https://profiles.wordpress.org/nacin">Andrew Nacin</a>, <a href="https://profiles.wordpress.org/norcross">Andrew Norcross</a>, <a href="https://profiles.wordpress.org/azaozz">Andrew Ozz</a>, <a href="https://profiles.wordpress.org/afragen">Andy Fragen</a>, <a href="https://profiles.wordpress.org/amandato">Angelo Mandato</a>, <a href="https://profiles.wordpress.org/ankitgadertcampcom">Ankit Gade</a>, <a href="https://profiles.wordpress.org/ankit-k-gupta">Ankit K Gupta</a>, <a href="https://profiles.wordpress.org/antpb">Anthony Burchell</a>, <a href="https://profiles.wordpress.org/apkoponen">ap.koponen</a>, <a href="https://profiles.wordpress.org/apokalyptik">apokalyptik</a>, <a href="https://profiles.wordpress.org/athsear">Athsear'J.S.</a>, <a href="https://profiles.wordpress.org/atomicjack">atomicjack</a>, <a href="https://profiles.wordpress.org/austinginder">Austin Ginder</a>, <a href="https://profiles.wordpress.org/filosofo">Austin Matzko</a>, <a href="https://profiles.wordpress.org/barryceelen">Barry Ceelen</a>, <a href="https://profiles.wordpress.org/barrykooij">Barry Kooij</a>, <a href="https://profiles.wordpress.org/bcworkz">bcworkz</a>, <a href="https://profiles.wordpress.org/bdn3504">BdN3504</a>, <a href="https://profiles.wordpress.org/pixolin">Bego Mario Garde</a>, <a href="https://profiles.wordpress.org/benjmay">Ben May</a>, <a href="https://profiles.wordpress.org/benjaminpick">Benjamin Pick</a>, <a href="https://profiles.wordpress.org/neoxx">Bernhard Riedl</a>, <a href="https://profiles.wordpress.org/bigdawggi">bigdawggi</a>, <a href="https://profiles.wordpress.org/bilalcoder">bilalcoder</a>, <a href="https://profiles.wordpress.org/binarykitten">BinaryKitten</a>, <a href="https://profiles.wordpress.org/birgire">Birgir Erlendsson (birgire)</a>, <a href="https://profiles.wordpress.org/bjornjohansen">Bj&#248;rn Johansen</a>, <a href="https://profiles.wordpress.org/bobbingwide">bobbingwide</a>, <a href="https://profiles.wordpress.org/gitlost">bonger</a>, <a href="https://profiles.wordpress.org/boonebgorges">Boone B. Gorges</a>, <a href="https://profiles.wordpress.org/bradt">Brad Touesnard</a>, <a href="https://profiles.wordpress.org/bradparbs">bradparbs</a>, <a href="https://profiles.wordpress.org/bradyvercher">Brady Vercher</a>, <a href="https://profiles.wordpress.org/kraftbj">Brandon Kraft</a>, <a href="https://profiles.wordpress.org/bravokeyl">bravokeyl</a>, <a href="https://profiles.wordpress.org/brentvr">brentvr</a>, <a href="https://profiles.wordpress.org/brettz95">brettz95</a>, <a href="https://profiles.wordpress.org/mckilem">Bruno Kos</a>, <a href="https://profiles.wordpress.org/crazycoolcam">Cam</a>, <a href="https://profiles.wordpress.org/camikaos">Cami Kaos</a>, <a href="https://profiles.wordpress.org/carolinegeven">carolinegeven</a>, <a href="https://profiles.wordpress.org/misterbisson">Casey Bisson</a>, <a href="https://profiles.wordpress.org/ch1902">ch1902</a>, <a href="https://profiles.wordpress.org/chacha102">chacha102</a>, <a href="https://profiles.wordpress.org/nhuja">Chandra M</a>, <a href="https://profiles.wordpress.org/chasewiseman">Chase Wiseman</a>, <a href="https://profiles.wordpress.org/chiara_09">Chiara Dossena</a>, <a href="https://profiles.wordpress.org/chipbennett">Chip Bennett</a>, <a href="https://profiles.wordpress.org/chiragswadia">Chirag Swadia</a>, <a href="https://profiles.wordpress.org/chriscct7">Chris Christoff</a>, <a href="https://profiles.wordpress.org/chrismkindred">Chris Kindred</a>, <a href="https://profiles.wordpress.org/cklosows">Chris Klosowski</a>, <a href="https://profiles.wordpress.org/chriscoyier">chriscoyier</a>, <a href="https://profiles.wordpress.org/chrisdc1">Chrisdc1</a>, <a href="https://profiles.wordpress.org/lovememore">christianoliff</a>, <a href="https://profiles.wordpress.org/christophherr">Christoph Herr</a>, <a href="https://profiles.wordpress.org/cfinke">Christopher Finke</a>, <a href="https://profiles.wordpress.org/chrisvendiadvertisingcom">cjhaas</a>, <a href="https://profiles.wordpress.org/codeelite">codeelite</a>, <a href="https://profiles.wordpress.org/coenjacobs">Coen Jacobs</a>, <a href="https://profiles.wordpress.org/compute">Compute</a>, <a href="https://profiles.wordpress.org/couturefreak">Courtney Ivey</a>, <a href="https://profiles.wordpress.org/craig-ralston">Craig Ralston</a>, <a href="https://profiles.wordpress.org/cgrymala">Curtiss Grymala</a>, <a href="https://profiles.wordpress.org/cdog">Cătălin Dogaru</a>, <a href="https://profiles.wordpress.org/extendwings">Daisuke Takahashi</a>, <a href="https://profiles.wordpress.org/dboulet">Dan Boulet</a>, <a href="https://profiles.wordpress.org/danielbachhuber">Daniel Bachhuber</a>, <a href="https://profiles.wordpress.org/daniel-koskinen">Daniel Koskinen</a>, <a href="https://profiles.wordpress.org/dmenard">Daniel M&#233;nard</a>, <a href="https://profiles.wordpress.org/mte90">Daniele Scasciafratte</a>, <a href="https://profiles.wordpress.org/daniellandau">daniellandau</a>, <a href="https://profiles.wordpress.org/daniloercoli">daniloercoli</a>, <a href="https://profiles.wordpress.org/dannydehaan">Danny de Haan</a>, <a href="https://profiles.wordpress.org/nerrad">Darren Ethier (nerrad)</a>, <a href="https://profiles.wordpress.org/dllh">Daryl L. L. Houston (dllh)</a>, <a href="https://profiles.wordpress.org/dattaparad">Datta Parad</a>, <a href="https://profiles.wordpress.org/dmchale">Dave McHale</a>, <a href="https://profiles.wordpress.org/davidakennedy">David A. Kennedy</a>, <a href="https://profiles.wordpress.org/davidanderson">David Anderson</a>, <a href="https://profiles.wordpress.org/davidbinda">David Biňovec</a>, <a href="https://profiles.wordpress.org/dlh">David Herrera</a>, <a href="https://profiles.wordpress.org/dshanske">David Shanske</a>, <a href="https://profiles.wordpress.org/debaat">DeBAAT</a>, <a href="https://profiles.wordpress.org/denis-de-bernardy">Denis de Bernardy</a>, <a href="https://profiles.wordpress.org/realloc">Dennis Ploetner</a>, <a href="https://profiles.wordpress.org/valendesigns">Derek Herman</a>, <a href="https://profiles.wordpress.org/downstairsdev">Devin Price</a>, <a href="https://profiles.wordpress.org/dezzy">Dezzy</a>, <a href="https://profiles.wordpress.org/dd32">Dion Hulse</a>, <a href="https://profiles.wordpress.org/dipalidhole27gmailcom">Dipali Dhole</a>, <a href="https://profiles.wordpress.org/dipeshkakadiya">dipesh.kakadiya</a>, <a href="https://profiles.wordpress.org/dbru">Dominik Bruderer</a>, <a href="https://profiles.wordpress.org/ocean90">Dominik Schilling</a>, <a href="https://profiles.wordpress.org/drebbitsweb">Dreb Bits</a>, <a href="https://profiles.wordpress.org/drewapicture">Drew Jaynes</a>, <a href="https://profiles.wordpress.org/dustinbolton">dustinbolton</a>, <a href="https://profiles.wordpress.org/kucrut">Dzikri Aziz</a>, <a href="https://profiles.wordpress.org/edirect24">edirect24</a>, <a href="https://profiles.wordpress.org/oso96_2000">Eduardo Reveles</a>, <a href="https://profiles.wordpress.org/eduardozulian">Eduardo Zulian</a>, <a href="https://profiles.wordpress.org/cais">Edward Caissie</a>, <a href="https://profiles.wordpress.org/egill">Egill R. Erlendsson</a>, <a href="https://profiles.wordpress.org/egower">egower</a>, <a href="https://profiles.wordpress.org/iehsanir">Ehsaan</a>, <a href="https://profiles.wordpress.org/ehtis">ehtis</a>, <a href="https://profiles.wordpress.org/iseulde">Ella Iseulde Van Dorpe</a>, <a href="https://profiles.wordpress.org/ellieroepken">Ellie Strejlau</a>, <a href="https://profiles.wordpress.org/elliott-stocks">Elliott Stocks</a>, <a href="https://profiles.wordpress.org/elusiveunit">elusiveunit</a>, <a href="https://profiles.wordpress.org/enshrined">enshrined</a>, <a href="https://profiles.wordpress.org/ericlewis">Eric Andrew Lewis</a>, <a href="https://profiles.wordpress.org/ebinnion">Eric Binnion</a>, <a href="https://profiles.wordpress.org/ericdaams">Eric Daams</a>, <a href="https://profiles.wordpress.org/ericmann">Eric Mann</a>, <a href="https://profiles.wordpress.org/ericjuden">ericjuden</a>, <a href="https://profiles.wordpress.org/eherman24">Evan Herman</a>, <a href="https://profiles.wordpress.org/f4rkie">F4rkie</a>, <a href="https://profiles.wordpress.org/flixos90">Felix Arntz</a>, <a href="https://profiles.wordpress.org/fsylum">Firdaus Zahari</a>, <a href="https://profiles.wordpress.org/fonglh">fonglh</a>, <a href="https://profiles.wordpress.org/francoisb">francoisb</a>, <a href="https://profiles.wordpress.org/frank-klein">Frank Klein</a>, <a href="https://profiles.wordpress.org/fjarrett">Frankie Jarrett</a>, <a href="https://profiles.wordpress.org/frozzare">Fredrik Forsmo</a>, <a href="https://profiles.wordpress.org/gaelan">Gaelan Lloyd</a>, <a href="https://profiles.wordpress.org/gagan0123">Gagan Deep Singh</a>, <a href="https://profiles.wordpress.org/garyc40">Gary Cao</a>, <a href="https://profiles.wordpress.org/garyj">Gary Jones</a>, <a href="https://profiles.wordpress.org/pento">Gary Pendergast</a>, <a href="https://profiles.wordpress.org/garza">garza</a>, <a href="https://profiles.wordpress.org/grvrulz">Gaurav Pareek</a>, <a href="https://profiles.wordpress.org/gautamgupta">Gautam Gupta</a>, <a href="https://profiles.wordpress.org/geminorum">geminorum</a>, <a href="https://profiles.wordpress.org/kloon">Gerhard Potgieter</a>, <a href="https://profiles.wordpress.org/gezamiklo">geza.miklo</a>, <a href="https://profiles.wordpress.org/gizburdt">Gijs Jorissen</a>, <a href="https://profiles.wordpress.org/garusky">Giuseppe Mamone</a>, <a href="https://profiles.wordpress.org/jubstuff">Giustino Borzacchiello</a>, <a href="https://profiles.wordpress.org/gnaka08">gnaka08</a>, <a href="https://profiles.wordpress.org/gradyetc">gradyetc</a>, <a href="https://profiles.wordpress.org/gregrickaby">Greg Rickaby</a>, <a href="https://profiles.wordpress.org/tivnet">Gregory Karpinsky (@tivnet)</a>, <a href="https://profiles.wordpress.org/bordoni">Gustavo Bordoni</a>, <a href="https://profiles.wordpress.org/webord">Gustavo Bordoni</a>, <a href="https://profiles.wordpress.org/gwinhlopez">gwinh.lopez</a>, <a href="https://profiles.wordpress.org/hakre">hakre</a>, <a href="https://profiles.wordpress.org/hauvong">hauvong</a>, <a href="https://profiles.wordpress.org/helen">Helen Hou-Sandí</a>, <a href="https://profiles.wordpress.org/hnle">Hinaloe</a>, <a href="https://profiles.wordpress.org/hrishiv90">Hrishikesh Vaipurkar</a>, <a href="https://profiles.wordpress.org/hlashbrooke">Hugh Lashbrooke</a>, <a href="https://profiles.wordpress.org/hugobaeta">Hugo Baeta</a>, <a href="https://profiles.wordpress.org/polevaultweb">Iain Poulson</a>, <a href="https://profiles.wordpress.org/iandunn">Ian Dunn</a>, <a href="https://profiles.wordpress.org/iandstewart">Ian Stewart</a>, <a href="https://profiles.wordpress.org/icetee">icetee</a>, <a href="https://profiles.wordpress.org/igmoweb">Ignacio Cruz Moreno</a>, <a href="https://profiles.wordpress.org/headonfire">Ihor Vorotnov</a>, <a href="https://profiles.wordpress.org/imath">imath</a>, <a href="https://profiles.wordpress.org/ippetkov">ippetkov</a>, <a href="https://profiles.wordpress.org/jdgrimes">J.D. Grimes</a>, <a href="https://profiles.wordpress.org/jakubtyrcha">jakub.tyrcha</a>, <a href="https://profiles.wordpress.org/macmanx">James Huff</a>, <a href="https://profiles.wordpress.org/janhenckens">janhenckens</a>, <a href="https://profiles.wordpress.org/japh">Japh</a>, <a href="https://profiles.wordpress.org/jaspermdegroot">Jasper de Groot</a>, <a href="https://profiles.wordpress.org/jazbek">jazbek</a>, <a href="https://profiles.wordpress.org/jcroucher">jcroucher</a>, <a href="https://profiles.wordpress.org/jfarthing84">Jeff Farthing</a>, <a href="https://profiles.wordpress.org/jeffstieler">Jeff Stieler</a>, <a href="https://profiles.wordpress.org/jeffmatson">JeffMatson</a>, <a href="https://profiles.wordpress.org/cheffheid">Jeffrey de Wit</a>, <a href="https://profiles.wordpress.org/jeichorn">jeichorn</a>, <a href="https://profiles.wordpress.org/jeremyfelt">Jeremy Felt</a>, <a href="https://profiles.wordpress.org/jpry">Jeremy Pry</a>, <a href="https://profiles.wordpress.org/slimndap">Jeroen Schmit</a>, <a href="https://profiles.wordpress.org/jesin">Jesin A</a>, <a href="https://profiles.wordpress.org/engelen">Jesper van Engelen</a>, <a href="https://profiles.wordpress.org/jim912">jim912</a>, <a href="https://profiles.wordpress.org/jliman">jliman</a>, <a href="https://profiles.wordpress.org/jmayhak">jmayhak</a>, <a href="https://profiles.wordpress.org/jnylen0">jnylen0</a>, <a href="https://profiles.wordpress.org/jobst">Jobst Schmalenbach</a>, <a href="https://profiles.wordpress.org/joedolson">Joe Dolson</a>, <a href="https://profiles.wordpress.org/joehoyle">Joe Hoyle</a>, <a href="https://profiles.wordpress.org/joemcgill">Joe McGill</a>, <a href="https://profiles.wordpress.org/joehills">joehills</a>, <a href="https://profiles.wordpress.org/johnbillion">John Blackbourn</a>, <a href="https://profiles.wordpress.org/johnjamesjacoby">John James Jacoby</a>, <a href="https://profiles.wordpress.org/johnpbloch">John P. Bloch</a>, <a href="https://profiles.wordpress.org/mindctrl">John Parris</a>, <a href="https://profiles.wordpress.org/duck_">Jon Cave</a>, <a href="https://profiles.wordpress.org/jonathanbardo">Jonathan Bardo</a>, <a href="https://profiles.wordpress.org/desrosj">Jonathan Desrosiers</a>, <a href="https://profiles.wordpress.org/joostdevalk">Joost de Valk</a>, <a href="https://profiles.wordpress.org/koke">Jorge Bernal</a>, <a href="https://profiles.wordpress.org/betzster">Josh Betz</a>, <a href="https://profiles.wordpress.org/jjeaton">Josh Eaton</a>, <a href="https://profiles.wordpress.org/shelob9">Josh Pollock</a>, <a href="https://profiles.wordpress.org/jrf">jrf</a>, <a href="https://profiles.wordpress.org/juhise">Juhi Saxena</a>, <a href="https://profiles.wordpress.org/juliobox">Julio Potier</a>, <a href="https://profiles.wordpress.org/justdaiv">justdaiv</a>, <a href="https://profiles.wordpress.org/justinsainton">Justin Sainton</a>, <a href="https://profiles.wordpress.org/jshreve">Justin Shreve</a>, <a href="https://profiles.wordpress.org/jtsternberg">Justin Sternberg</a>, <a href="https://profiles.wordpress.org/greenshady">Justin Tadlock</a>, <a href="https://profiles.wordpress.org/kadamwhite">K.Adam White</a>, <a href="https://profiles.wordpress.org/trepmal">Kailey (trepmal)</a>, <a href="https://profiles.wordpress.org/kalenjohnson">KalenJohnson</a>, <a href="https://profiles.wordpress.org/karinedo">karinedo</a>, <a href="https://profiles.wordpress.org/karpstrucking">karpstrucking</a>, <a href="https://profiles.wordpress.org/ryelle">Kelly Dwan</a>, <a href="https://profiles.wordpress.org/kevinb">Kevin Behrens</a>, <a href="https://profiles.wordpress.org/kevinlangleyjr">Kevin Langley</a>, <a href="https://profiles.wordpress.org/kevinatelement">kevinatelement</a>, <a href="https://profiles.wordpress.org/kitchin">kitchin</a>, <a href="https://profiles.wordpress.org/ixkaito">Kite</a>, <a href="https://profiles.wordpress.org/kovshenin">Konstantin Kovshenin</a>, <a href="https://profiles.wordpress.org/obenland">Konstantin Obenland</a>, <a href="https://profiles.wordpress.org/drozdz">Krzysiek Dr&#243;żdż</a>, <a href="https://profiles.wordpress.org/kurtpayne">Kurt Payne</a>, <a href="https://profiles.wordpress.org/laceous">laceous</a>, <a href="https://profiles.wordpress.org/lancewillett">Lance Willett</a>, <a href="https://profiles.wordpress.org/offereins">Laurens Offereins</a>, <a href="https://profiles.wordpress.org/lcherpit">lcherpit</a>, <a href="https://profiles.wordpress.org/ldinclaux">ldinclaux</a>, <a href="https://profiles.wordpress.org/leewillis77">Lee Willis</a>, <a href="https://profiles.wordpress.org/leemon">leemon</a>, <a href="https://profiles.wordpress.org/lessbloat">lessbloat</a>, <a href="https://profiles.wordpress.org/linuxologos">linuxologos</a>, <a href="https://profiles.wordpress.org/spmlucas">Lucas Karpiuk</a>, <a href="https://profiles.wordpress.org/lucatume">lucatume</a>, <a href="https://profiles.wordpress.org/luciole135">luciole135</a>, <a href="https://profiles.wordpress.org/lucymtc">Lucy Tomas</a>, <a href="https://profiles.wordpress.org/lukecarbis">Luke Carbis</a>, <a href="https://profiles.wordpress.org/madalinungureanu">madalin.ungureanu</a>, <a href="https://profiles.wordpress.org/mako09">Mako</a>, <a href="https://profiles.wordpress.org/manolis09">manolis09</a>, <a href="https://profiles.wordpress.org/iworks">Marcin Pietrzak</a>, <a href="https://profiles.wordpress.org/tyxla">Marin Atanasov</a>, <a href="https://profiles.wordpress.org/nofearinc">Mario Peshev</a>, <a href="https://profiles.wordpress.org/clorith">Marius (Clorith)</a>, <a href="https://profiles.wordpress.org/markjaquith">Mark Jaquith</a>, <a href="https://profiles.wordpress.org/markoheijnen">Marko Heijnen</a>, <a href="https://profiles.wordpress.org/mechter">Markus</a>, <a href="https://profiles.wordpress.org/wilto">Mat Marquis</a>, <a href="https://profiles.wordpress.org/matheusfd">Matheus Martins</a>, <a href="https://profiles.wordpress.org/mattbagwell">Matt Bagwell</a>, <a href="https://profiles.wordpress.org/mgibbs189">Matt Gibbs</a>, <a href="https://profiles.wordpress.org/sivel">Matt Martz</a>, <a href="https://profiles.wordpress.org/matt">Matt Mullenweg</a>, <a href="https://profiles.wordpress.org/veraxus">Matt van Andel</a>, <a href="https://profiles.wordpress.org/mboynes">Matthew Boynes</a>, <a href="https://profiles.wordpress.org/mattheu">Matthew Haines-Young</a>, <a href="https://profiles.wordpress.org/mazurstas">mazurstas</a>, <a href="https://profiles.wordpress.org/mbrandys">mbrandys</a>, <a href="https://profiles.wordpress.org/mdmcginn">mdmcginn</a>, <a href="https://profiles.wordpress.org/mehulkaklotar">mehulkaklotar</a>, <a href="https://profiles.wordpress.org/melchoyce">Mel Choyce</a>, <a href="https://profiles.wordpress.org/meloniq">meloniq</a>, <a href="https://profiles.wordpress.org/micahmills">micahmills</a>, <a href="https://profiles.wordpress.org/micahwave">micahwave</a>, <a href="https://profiles.wordpress.org/mdawaffe">Michael Adams (mdawaffe)</a>, <a href="https://profiles.wordpress.org/michael-arestad">Michael Arestad</a>, <a href="https://profiles.wordpress.org/cainm">Michael Cain</a>, <a href="https://profiles.wordpress.org/michielhab">Michiel Habraken</a>, <a href="https://profiles.wordpress.org/mcguive7">Mickey Kay</a>, <a href="https://profiles.wordpress.org/mdgl">Mike Glendinning</a>, <a href="https://profiles.wordpress.org/mikehansenme">Mike Hansen</a>, <a href="https://profiles.wordpress.org/mikejolley">Mike Jolley</a>, <a href="https://profiles.wordpress.org/thaicloud">Mike Jordan</a>, <a href="https://profiles.wordpress.org/mikeschinkel">Mike Schinkel</a>, <a href="https://profiles.wordpress.org/mikeschroder">Mike Schroder</a>, <a href="https://profiles.wordpress.org/dimadin">Milan Dinić</a>, <a href="https://profiles.wordpress.org/mismith227">mismith227</a>, <a href="https://profiles.wordpress.org/misterunknown">misterunknown</a>, <a href="https://profiles.wordpress.org/mitchoyoshitaka">mitcho (Michael Yoshitaka Erlewine)</a>, <a href="https://profiles.wordpress.org/monika">Monika</a>, <a href="https://profiles.wordpress.org/morganestes">Morgan Estes</a>, <a href="https://profiles.wordpress.org/mor10">Morten Rand-Hendriksen</a>, <a href="https://profiles.wordpress.org/mt8biz">moto hachi ( mt8.biz )</a>, <a href="https://profiles.wordpress.org/usermrpapa">Mr Papa</a>, <a href="https://profiles.wordpress.org/mrmist">mrmist</a>, <a href="https://profiles.wordpress.org/mulvane">mulvane</a>, <a href="https://profiles.wordpress.org/neoscrib">neoscrib</a>, <a href="https://profiles.wordpress.org/next-season">NExT-Season</a>, <a href="https://profiles.wordpress.org/niallkennedy">Niall Kennedy</a>, <a href="https://profiles.wordpress.org/nicholas_io">nicholas_io</a>, <a href="https://profiles.wordpress.org/nickciske">Nick Ciske</a>, <a href="https://profiles.wordpress.org/celloexpressions">Nick Halsey</a>, <a href="https://profiles.wordpress.org/nickduncan">NickDuncan</a>, <a href="https://profiles.wordpress.org/rahe">Nicolas Juen</a>, <a href="https://profiles.wordpress.org/nikeo">nikeo</a>, <a href="https://profiles.wordpress.org/nikschavan">Nikhil Chavan</a>, <a href="https://profiles.wordpress.org/niklasbr">Niklas</a>, <a href="https://profiles.wordpress.org/nikolovtmw">Nikola Nikolov</a>, <a href="https://profiles.wordpress.org/nbachiyski">Nikolay Bachiyski</a>, <a href="https://profiles.wordpress.org/rabmalin">Nilambar Sharma</a>, <a href="https://profiles.wordpress.org/originalexe">OriginalEXE</a>, <a href="https://profiles.wordpress.org/pareshradadiya-1">Paresh Radadiya</a>, <a href="https://profiles.wordpress.org/swissspidy">Pascal Birchler</a>, <a href="https://profiles.wordpress.org/obrienlabs">Pat O'Brien</a>, <a href="https://profiles.wordpress.org/pbearne">Paul Bearne</a>, <a href="https://profiles.wordpress.org/pauldewouters">Paul de Wouters</a>, <a href="https://profiles.wordpress.org/figureone">Paul Ryan</a>, <a href="https://profiles.wordpress.org/paulwilde">Paul Wilde</a>, <a href="https://profiles.wordpress.org/pavelevap">pavelevap</a>, <a href="https://profiles.wordpress.org/sirbrillig">Payton Swick</a>, <a href="https://profiles.wordpress.org/peterwilsoncc">Peter Wilson</a>, <a href="https://profiles.wordpress.org/walbo">Petter Walb&#248; Johnsg&#229;rd</a>, <a href="https://profiles.wordpress.org/petya">Petya Raykovska</a>, <a href="https://profiles.wordpress.org/pfefferle">pfefferle</a>, <a href="https://profiles.wordpress.org/philiparthurmoore">Philip Arthur Moore</a>, <a href="https://profiles.wordpress.org/philiplakin">PhilipLakin</a>, <a href="https://profiles.wordpress.org/corphi">Philipp Cordes</a>, <a href="https://profiles.wordpress.org/delawski">Piotr Delawski</a>, <a href="https://profiles.wordpress.org/psoluch">Piotr Soluch</a>, <a href="https://profiles.wordpress.org/mordauk">Pippin Williamson</a>, <a href="https://profiles.wordpress.org/prasad-nevase">Prasad Nevase</a>, <a href="https://profiles.wordpress.org/nprasath002">Prasath Nadarajah</a>, <a href="https://profiles.wordpress.org/pratikchaskar">Pratik</a>, <a href="https://profiles.wordpress.org/rachelbaker">Rachel Baker</a>, <a href="https://profiles.wordpress.org/rajnikmit">rajnikmit</a>, <a href="https://profiles.wordpress.org/racase">Rakesh Lawaju (Racase Lawaju)</a>, <a href="https://profiles.wordpress.org/ramay">ramay</a>, <a href="https://profiles.wordpress.org/ramiy">Rami Yushuvaev</a>, <a href="https://profiles.wordpress.org/raulillana">Raul Illana</a>, <a href="https://profiles.wordpress.org/renoirb">renoirb</a>, <a href="https://profiles.wordpress.org/rhubbardreverb">rhubbardreverb</a>, <a href="https://profiles.wordpress.org/rhyswynne">Rhys Wynne</a>, <a href="https://profiles.wordpress.org/rianrietveld">Rian Rietveld</a>, <a href="https://profiles.wordpress.org/iamfriendly">Richard Tape</a>, <a href="https://profiles.wordpress.org/miqrogroove">Robert Chapin</a>, <a href="https://profiles.wordpress.org/rodrigosprimo">Rodrigo Primo</a>, <a href="https://profiles.wordpress.org/rommelxcastro">Rommel Castro</a>, <a href="https://profiles.wordpress.org/wpmuguru">Ron Rennick</a>, <a href="https://profiles.wordpress.org/ronalfy">Ronald Huereca</a>, <a href="https://profiles.wordpress.org/kingkool68">Russell Heimlich</a>, <a href="https://profiles.wordpress.org/ruudjoyo">Ruud Laan</a>, <a href="https://profiles.wordpress.org/ryankienstra">Ryan Kienstra</a>, <a href="https://profiles.wordpress.org/markel">Ryan Markel</a>, <a href="https://profiles.wordpress.org/rmccue">Ryan McCue</a>, <a href="https://profiles.wordpress.org/welcher">Ryan Welcher</a>, <a href="https://profiles.wordpress.org/zeo">Safirul Alredha</a>, <a href="https://profiles.wordpress.org/salcode">Sal Ferrarello</a>, <a href="https://profiles.wordpress.org/sammybeats">Sam Brodie</a>, <a href="https://profiles.wordpress.org/sam2kb">sam2kb</a>, <a href="https://profiles.wordpress.org/solarissmoke">Samir Shah</a>, <a href="https://profiles.wordpress.org/samuelsidler">Samuel Sidler</a>, <a href="https://profiles.wordpress.org/otto42">Samuel Wood (Otto)</a>, <a href="https://profiles.wordpress.org/sanketparmar">Sanket Parmar</a>, <a href="https://profiles.wordpress.org/rosso99">Sara Rosso</a>, <a href="https://profiles.wordpress.org/sarciszewski">sarciszewski</a>, <a href="https://profiles.wordpress.org/sgrant">Scott Grant</a>, <a href="https://profiles.wordpress.org/sc0ttkclark">Scott Kingsley Clark</a>, <a href="https://profiles.wordpress.org/coffee2code">Scott Reilly</a>, <a href="https://profiles.wordpress.org/greglone">ScreenfeedFr</a>, <a href="https://profiles.wordpress.org/scribu">scribu</a>, <a href="https://profiles.wordpress.org/sdavis2702">Sean Davis</a>, <a href="https://profiles.wordpress.org/seanchayes">Sean Hayes</a>, <a href="https://profiles.wordpress.org/sebastianpisula">Sebastian Pisula</a>, <a href="https://profiles.wordpress.org/sergeybiryukov">Sergey Biryukov</a>, <a href="https://profiles.wordpress.org/serpent7776">serpent7776</a>, <a href="https://profiles.wordpress.org/several27">several27</a>, <a href="https://profiles.wordpress.org/shimakyohsuke">shimakyohsuke</a>, <a href="https://profiles.wordpress.org/side777">side777</a>, <a href="https://profiles.wordpress.org/pross">Simon Prosser</a>, <a href="https://profiles.wordpress.org/simonwheatley">Simon Wheatley</a>, <a href="https://profiles.wordpress.org/siobhan">Siobhan</a>, <a href="https://profiles.wordpress.org/sirzooro">sirzooro</a>, <a href="https://profiles.wordpress.org/sjmur">sjmur</a>, <a href="https://profiles.wordpress.org/smerriman">smerriman</a>, <a href="https://profiles.wordpress.org/spacedmonkey">Spacedmonkey</a>, <a href="https://profiles.wordpress.org/sboisvert">St&#233;phane Boisvert</a>, <a href="https://profiles.wordpress.org/khromov">Stanislav Khromov</a>, <a href="https://profiles.wordpress.org/metodiew">Stanko Metodiev</a>, <a href="https://profiles.wordpress.org/stebbiv">stebbiv</a>, <a href="https://profiles.wordpress.org/miglosh">Stefan Froehlich</a>, <a href="https://profiles.wordpress.org/sillybean">Stephanie Leary</a>, <a href="https://profiles.wordpress.org/netweb">Stephen Edgar</a>, <a href="https://profiles.wordpress.org/stephenharris">Stephen Harris</a>, <a href="https://profiles.wordpress.org/stevegrunwell">Steve Grunwell</a>, <a href="https://profiles.wordpress.org/stevehenty">stevehenty</a>, <a href="https://profiles.wordpress.org/stevehoneynz">SteveHoneyNZ</a>, <a href="https://profiles.wordpress.org/stevenkword">Steven Word</a>, <a href="https://profiles.wordpress.org/charlestonsw">Store Locator Plus</a>, <a href="https://profiles.wordpress.org/sudar">Sudar Muthu</a>, <a href="https://profiles.wordpress.org/brainstormforce">Sujay</a>, <a href="https://profiles.wordpress.org/5um17">Sumit Singh</a>, <a href="https://profiles.wordpress.org/summerblue">summerblue</a>, <a href="https://profiles.wordpress.org/sunnyratilal">Sunny Ratilal</a>, <a href="https://profiles.wordpress.org/iamtakashi">Takashi Irie</a>, <a href="https://profiles.wordpress.org/miyauchi">Takayuki Miyauchi</a>, <a href="https://profiles.wordpress.org/karmatosed">Tammie Lister</a>, <a href="https://profiles.wordpress.org/tanner-m">Tanner Moushey</a>, <a href="https://profiles.wordpress.org/tbcorr">tbcorr</a>, <a href="https://profiles.wordpress.org/tychay">Terry Chay</a>, <a href="https://profiles.wordpress.org/tharsheblows">tharsheblows</a>, <a href="https://profiles.wordpress.org/themiked">theMikeD</a>, <a href="https://profiles.wordpress.org/kraftner">Thomas Kr&#228;ftner</a>, <a href="https://profiles.wordpress.org/thomaswm">thomaswm</a>, <a href="https://profiles.wordpress.org/tfrommen">Thorsten Frommen</a>, <a href="https://profiles.wordpress.org/tott">Thorsten Ott</a>, <a href="https://profiles.wordpress.org/tigertech">tigertech</a>, <a href="https://profiles.wordpress.org/tillkruess">Till Kr&#252;ss</a>, <a href="https://profiles.wordpress.org/tevko">Tim Evko</a>, <a href="https://profiles.wordpress.org/tmatsuur">tmatsuur</a>, <a href="https://profiles.wordpress.org/tmeister">tmeister</a>, <a href="https://profiles.wordpress.org/tobiasbg">TobiasBg</a>, <a href="https://profiles.wordpress.org/willmot">Tom Willmot</a>, <a href="https://profiles.wordpress.org/tomharrigan">TomHarrigan</a>, <a href="https://profiles.wordpress.org/tommarshall">tommarshall</a>, <a href="https://profiles.wordpress.org/tomsommer">tomsommer</a>, <a href="https://profiles.wordpress.org/skithund">Toni Viemer&#246;</a>, <a href="https://profiles.wordpress.org/toro_unit">Toro_Unit (Hiroshi Urabe)</a>, <a href="https://profiles.wordpress.org/liljimmi">Tracy (LilJimmi) Levesque</a>, <a href="https://profiles.wordpress.org/rilwis">Tran Ngoc Tuan Anh</a>, <a href="https://profiles.wordpress.org/wpsmith">Travis Smith</a>, <a href="https://profiles.wordpress.org/trenzterra">trenzterra</a>, <a href="https://profiles.wordpress.org/tryon">Tryon Eggleston</a>, <a href="https://profiles.wordpress.org/tszming">tszming</a>, <a href="https://profiles.wordpress.org/junsuijin">ty</a>, <a href="https://profiles.wordpress.org/tywayne">Ty Carlson</a>, <a href="https://profiles.wordpress.org/grapplerulrich">Ulrich</a>, <a href="https://profiles.wordpress.org/sorich87">Ulrich Sossou</a>, <a href="https://profiles.wordpress.org/umeshsingla">Umesh Kumar</a>, <a href="https://profiles.wordpress.org/umeshnevase">Umesh Nevase</a>, <a href="https://profiles.wordpress.org/utkarshpatel">Utkarsh</a>, <a href="https://profiles.wordpress.org/vilkatis">vilkatis</a>, <a href="https://profiles.wordpress.org/voldemortensen">voldemortensen</a>, <a href="https://profiles.wordpress.org/walterebert">Walter Ebert</a>, <a href="https://profiles.wordpress.org/walterbarcelos">walterbarcelos</a>, <a href="https://profiles.wordpress.org/webdevmattcrom">webdevmattcrom</a>, <a href="https://profiles.wordpress.org/wen-solutions">WEN Solutions</a>, <a href="https://profiles.wordpress.org/wenthemes">WEN Themes</a>, <a href="https://profiles.wordpress.org/westonruter">Weston Ruter</a>, <a href="https://profiles.wordpress.org/wmertens">wmertens</a>, <a href="https://profiles.wordpress.org/wojtekszkutnik">Wojtek Szkutnik</a>, <a href="https://profiles.wordpress.org/theode">WP Plugin Dev dot com</a>, <a href="https://profiles.wordpress.org/wpdev101">wpdev101</a>, <a href="https://profiles.wordpress.org/alphawolf">wpseek</a>, <a href="https://profiles.wordpress.org/wturrell">wturrell</a>, <a href="https://profiles.wordpress.org/yamchhetri">Yam Chhetri</a>, <a href="https://profiles.wordpress.org/yoavf">Yoav Farhi</a>, <a href="https://profiles.wordpress.org/oxymoron">Zach Wills</a>, <a href="https://profiles.wordpress.org/zrothauser">Zack Rothauser</a>, and <a href="https://profiles.wordpress.org/tollmanz">Zack Tollman</a>.
<p>&nbsp;</p>
<p>Special thanks go to <a href="http://siobhanmckeown.com/">Siobhan McKeown</a> for producing the release video with <a href="http://www.sararosso.com/newsletter/">Sara Rosso</a>, and <a href="http://camikaos.com">Cami Kaos</a> for the voice-over.</p>
<p>Finally, thanks to all of the contributors who provided subtitles for the release video, which at last count had been translated into 23 languages!</p>
<p>If you want to follow along or help out, check out <a href="https://make.wordpress.org/">Make WordPress</a> and our <a href="https://make.wordpress.org/core/">core development blog</a>. Thanks for choosing WordPress. See you soon for version 4.5!</p>
<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow" data-shared="sharing-twitter-3990" class="share-twitter sd-button share-icon" href="https://wordpress.org/news/2015/12/clifford/?share=twitter" target="_blank" title="Click to share on Twitter"><span>Twitter</span></a></li><li class="share-facebook"><a rel="nofollow" data-shared="sharing-facebook-3990" class="share-facebook sd-button share-icon" href="https://wordpress.org/news/2015/12/clifford/?share=facebook" target="_blank" title="Share on Facebook"><span>Facebook</span></a></li><li class="share-google-plus-1"><a rel="nofollow" data-shared="sharing-google-3990" class="share-google-plus-1 sd-button share-icon" href="https://wordpress.org/news/2015/12/clifford/?share=google-plus-1" target="_blank" title="Click to share on Google+"><span>Google</span></a></li><li class="share-email"><a rel="nofollow" data-shared="" class="share-email sd-button share-icon" href="https://wordpress.org/news/2015/12/clifford/?share=email" target="_blank" title="Click to email this to a friend"><span>Email</span></a></li><li class="share-end"></li></ul></div></div></div><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-14607090-3990-567392c28cb0d' data-src='//widgets.wp.com/likes/#blog_id=14607090&amp;post_id=3990&amp;origin=wordpress.org&amp;obj_id=14607090-3990-567392c28cb0d' data-name='like-post-frame-14607090-3990-567392c28cb0d'><h3 class='sd-title'>Like this:</h3><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height:55px'><span class='button'><span>Like</span></span> <span class="loading">Loading...</span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div></div>



<div class="nextprev"><span class="prev">&laquo; <a href="https://wordpress.org/news/2015/11/wordpress-4-4-release-candidate/">WordPress 4.4 Release Candidate</a></span> <span class="next"></span></div>





</div>
<div class="col-3">
	<div class="blog-categories">
		<h4>See Also:</h4>
		<p>For more WordPress news, check out the <a href="http://planet.wordpress.org/">WordPress Planet</a>.</p>
		<p>There&#8217;s also a <a href="https://make.wordpress.org/core/">development P2 blog</a>.</p>
		<p>To see how active the project is <a href="https://core.trac.wordpress.org/timeline">check out our Trac timeline</a>, it often has 20&#8211;30 updates per day.</p>
		<h4>Categories</h4>
		<ul>
				<li class="cat-item cat-item-14"><a href="https://wordpress.org/news/category/releases/" >Releases</a> (176)
</li>
	<li class="cat-item cat-item-5"><a href="https://wordpress.org/news/category/development/" >Development</a> (175)
</li>
	<li class="cat-item cat-item-12"><a href="https://wordpress.org/news/category/meta/" >Meta</a> (43)
</li>
	<li class="cat-item cat-item-15"><a href="https://wordpress.org/news/category/security/" >Security</a> (39)
</li>
	<li class="cat-item cat-item-3"><a href="https://wordpress.org/news/category/community/" >Community</a> (38)
</li>
	<li class="cat-item cat-item-7"><a href="https://wordpress.org/news/category/events/" >Events</a> (31)
</li>
	<li class="cat-item cat-item-18"><a href="https://wordpress.org/news/category/testing/" >Testing</a> (23)
</li>
	<li class="cat-item cat-item-10"><a href="https://wordpress.org/news/category/general/" >General</a> (18)
</li>
	<li class="cat-item cat-item-22"><a href="https://wordpress.org/news/category/wordcamp/" >WordCamp</a> (18)
</li>
	<li class="cat-item cat-item-6"><a href="https://wordpress.org/news/category/documentation/" >Documentation</a> (15)
</li>
		</ul>
	</div>
</div>
</div>
</div>
<div id="wporg-footer">
		<div class="wrapper">
		<ul>
			<li><a href="//wordpress.org/about/" title="An introduction to the WordPress project">About</a></li>
			<li><a href="//wordpress.org/news/" title="News and Updates">Blog</a></li>
			<li><a href="//wordpress.org/hosting/" title="Recommended web hosting providers">Hosting</a></li>
			<li><a href="http://jobs.wordpress.net/" title="Find or post WordPress jobs">Jobs</a></li>
		</ul>

		<ul>
			<li><a href="//wordpress.org/support/" title="Forums, documentation, and other resources">Support</a></li>
			<li><a href="//developer.wordpress.org" title="Resources for WordPress developers">Developers</a></li>
			<li><a href="//make.wordpress.org/" title="Give back to WordPress through code, support, translation and more">Get Involved</a></li>
			<li><a href="//learn.wordpress.org/" title="Workshops and training materials">Learn</a></li>
		</ul>

		<ul>
			<li><a href="//wordpress.org/showcase/" title="Some of the best WordPress sites on the Web">Showcase</a></li>
			<li><a href="//wordpress.org/plugins/" title="Add extra functionality to WordPress">Plugins</a></li>
			<li><a href="//wordpress.org/themes/" title="Make your WordPress pretty">Themes</a></li>
			<li><a href="//wordpress.org/ideas/" title="Share your ideas for improving WordPress">Ideas</a></li>
		</ul>

		<ul>
			<li><a href="//central.wordcamp.org/" title="Find a WordPress event near you">WordCamp</a></li>
			<li><a href="//wordpress.tv/" title="Videos, tutorials, and WordCamp sessions">WordPress.TV</a></li>
			<li><a href="//buddypress.org/" title="A set of plugins to transform your WordPress into a social network">BuddyPress</a></li>
			<li><a href="//bbpress.org/" title="Fast, slick forums built on WordPress">bbPress</a></li>
		</ul>

		<ul>
			<li><a href="//wordpress.com/?ref=wporg-footer" title="Hassle-free WordPress hosting">WordPress.com</a></li>
			<li><a href="//ma.tt/" title="Co-founder of WordPress, an example of what WordPress can do">Matt</a></li>
			<li><a href="//wordpress.org/about/privacy/" title="WordPress.org Privacy Policy">Privacy</a></li>
			<li><a href="//wordpress.org/about/license/" title="WordPress is open source software">License / GPLv2</a></li>
		</ul>

		<ul>
			<li>
				<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/follow_button.html?screen_name=WordPress&amp;show_count=false" style="width:135px; height:20px;"></iframe>
			</li>
			<li>
				<iframe src="//www.facebook.com/plugins/like.php?app_id=121415197926116&amp;href=http%3A%2F%2Fwww.facebook.com%2Fwordpress&amp;send=false&amp;layout=button_count&amp;width=135&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=lucida+grande&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:135px; height:21px;" allowTransparency="true"></iframe>
			</li>
			<li>
				<script src="https://apis.google.com/js/platform.js" async defer></script>
				<div class="g-plusone" data-size="medium" data-href="https://plus.google.com/+WordPress"></div>
			</li>
		</ul>
	</div>
	
		<h6 class="aligncenter cip-image">Code is Poetry.</h6>
</div>


<script type="text/javascript">
  var _qevents = _qevents || [];
  (function() {
   var elem = document.createElement('script');
   elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge")
               + ".quantserve.com/quant.js";
   elem.async = true;
   elem.type = "text/javascript";
   var scpt = document.getElementsByTagName('script')[0];
   scpt.parentNode.insertBefore(elem, scpt);
  })();
</script>
<script type="text/javascript">_qevents.push( { qacct:"p-18-mFEk4J448M"} );</script>
<noscript><img src="//pixel.quantserve.com/pixel/p-18-mFEk4J448M.gif" style="display: none;" border="0" height="1" width="1" alt=""/></noscript>
<!-- 6 queries. 0.185 seconds -->

<script type="text/javascript">
(function($){
$(document).ready(function() {
	$('#footer a').click(function() {
		if (this.href.indexOf('wordpress.org') == -1 && this.href.indexOf('http') == 0) {
			recordOutboundLink(this, 'Outbound Links', this.href);
			return false;
		}
	});
});
})(jQuery);
</script>
	<div style="display:none">
	</div>

	<script type="text/javascript">
		window.WPCOM_sharing_counts = {"https:\/\/wordpress.org\/news\/2015\/12\/clifford\/":3990};
	</script>
		<script type="text/javascript">
			var windowOpen;
		jQuery(document).on( 'ready post-load', function(){
			jQuery( 'a.share-twitter' ).on( 'click', function() {
				if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
					windowOpen.close();
				}
				windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomtwitter', 'menubar=1,resizable=1,width=600,height=350' );
				return false;
			});
		});
		</script>
				<script type="text/javascript">
			var windowOpen;
		jQuery(document).on( 'ready post-load', function(){
			jQuery( 'a.share-facebook' ).on( 'click', function() {
				if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
					windowOpen.close();
				}
				windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomfacebook', 'menubar=1,resizable=1,width=600,height=400' );
				return false;
			});
		});
		</script>
				<script type="text/javascript">
			var windowOpen;
		jQuery(document).on( 'ready post-load', function(){
			jQuery( 'a.share-google-plus-1' ).on( 'click', function() {
				if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
					windowOpen.close();
				}
				windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomgoogle-plus-1', 'menubar=1,resizable=1,width=480,height=550' );
				return false;
			});
		});
		</script>
			<div id="sharing_email" style="display: none;">
		<form action="/news/2015/12/clifford/" method="post">
			<label for="target_email">Send to Email Address</label>
			<input type="email" name="target_email" id="target_email" value="" />

			
				<label for="source_name">Your Name</label>
				<input type="text" name="source_name" id="source_name" value="" />

				<label for="source_email">Your Email Address</label>
				<input type="email" name="source_email" id="source_email" value="" />

						<input type="text" id="jetpack-source_f_name" name="source_f_name" class="input" value="" size="25" autocomplete="off" />
			<script> document.getElementById('jetpack-source_f_name').value = ''; </script>
			
			<img style="float: right; display: none" class="loading" src="https://wordpress.org/news/wp-content/plugins/jetpack/modules/sharedaddy/images/loading.gif" alt="loading" width="16" height="16" />
			<input type="submit" value="Send Email" class="sharing_send" />
			<a rel="nofollow" href="#cancel" class="sharing_cancel">Cancel</a>

			<div class="errors errors-1" style="display: none;">
				Post was not sent - check your email addresses!			</div>

			<div class="errors errors-2" style="display: none;">
				Email check failed, please try again			</div>

			<div class="errors errors-3" style="display: none;">
				Sorry, your blog cannot share posts by email.			</div>
		</form>
	</div>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/modules/photon/photon.js?ver=20130122'></script>
<script type='text/javascript' src='https://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201551'></script>
<script type='text/javascript' src='https://secure.gravatar.com/js/gprofiles.js?ver=2015Decaa'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var WPGroHo = {"my_hash":""};
/* ]]> */
</script>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/modules/wpgroho.js?ver=4.5-alpha-35990'></script>
<script type='text/javascript' src='https://wordpress.org/news/wp-includes/js/wp-embed.min.js?ver=4.5-alpha-35990'></script>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/_inc/postmessage.js?ver=3.7.2'></script>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/_inc/jquery.jetpack-resize.js?ver=3.7.2'></script>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/_inc/jquery.inview.js?ver=3.7.2'></script>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/modules/likes/queuehandler.js?ver=3.7.2'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var sharing_js_options = {"lang":"en","counts":"1"};
/* ]]> */
</script>
<script type='text/javascript' src='https://wordpress.org/news/wp-content/plugins/jetpack/modules/sharedaddy/sharing.js?ver=3.7.2'></script>
		<iframe src='https://widgets.wp.com/likes/master.html?ver=20141028#ver=20141028' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe>
		<div id='likes-other-gravatars'><div class="likes-text"><span>%d</span> bloggers like this:</div><ul class="wpl-avatars sd-like-gravatars"></ul></div>
		<script type='text/javascript' src='https://stats.wp.com/e-201551.js' async defer></script>
<script type='text/javascript'>
	_stq = window._stq || [];
	_stq.push([ 'view', {v:'ext',j:'1:3.7.2',blog:'14607090',post:'3990',tz:'0',srv:'wordpress.org'} ]);
	_stq.push([ 'clickTrackerInit', '14607090', '3990' ]);
</script>
</body>
</html>
"

この中からほしいのは head 内に含まれているかも知れない下記リンクタグです

  • application/json+oembed
  • text/xml+oembed
  • application/xml+oembed

もしも、これらのリンクが含まれていないWP4.3以下等の場合は、埋め込み用データを取得できないのでここで終了です

oEmbedリクエスト実行

このサイトでは、71行めに application/json+oembed リンクが見つかるので、そこから oEmbed プロバイダーデータを取得します

"https://wordpress.org/news/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwordpress.org%2Fnews%2F2015%2F12%2Fclifford%2F"

取得した oembed リクエストコマンド文をベースに表示サイズやデータ形式(json)等のオプションデータを付け加えて oEmbed リクエストを実行します
(WP4.4 で実装された REST API を使って、oEmbed を用いたデータ通信処理が行われます)

すると json 形式のデータを取得することが出来ます

"{"version":"1.0","provider_name":"WordPress News","provider_url":"https:\/\/wordpress.org\/news","author_name":"Matt Mullenweg","author_url":"https:\/\/profiles.wordpress.org\/matt","title":"WordPress 4.4 \"Clifford\"","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\"><a href=\"https:\/\/wordpress.org\/news\/2015\/12\/clifford\/\">WordPress 4.4 &#8220;Clifford&#8221;<\/a><\/blockquote>\n<script type='text\/javascript'>\n<!--\/\/--><![CDATA[\/\/><!--\n\t\t!function(a,b){\"use strict\";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf(\"MSIE 10\"),h=!!navigator.userAgent.match(\/Trident.*rv:11\\.\/),i=b.querySelectorAll(\"iframe.wp-embedded-content\"),j=b.querySelectorAll(\"blockquote.wp-embedded-content\");for(c=0;c<j.length;c++)j[c].style.display=\"none\";for(c=0;c<i.length;c++)if(d=i[c],d.style.display=\"\",!d.getAttribute(\"data-secret\")){if(f=Math.random().toString(36).substr(2,10),d.src+=\"#?secret=\"+f,d.setAttribute(\"data-secret\",f),g||h)a=d.cloneNode(!0),a.removeAttribute(\"security\"),d.parentNode.replaceChild(a,d)}else;}}var d=!1,e=!1;if(b.querySelector)if(a.addEventListener)d=!0;if(a.wp=a.wp||{},!a.wp.receiveEmbedMessage)if(a.wp.receiveEmbedMessage=function(c){var d=c.data;if(d.secret||d.message||d.value)if(!\/[^a-zA-Z0-9]\/.test(d.secret)){var e,f,g,h,i,j=b.querySelectorAll('iframe[data-secret=\"'+d.secret+'\"]'),k=b.querySelectorAll('blockquote[data-secret=\"'+d.secret+'\"]');for(e=0;e<k.length;e++)k[e].style.display=\"none\";for(e=0;e<j.length;e++)if(f=j[e],c.source===f.contentWindow){if(f.style.display=\"\",\"height\"===d.message){if(g=parseInt(d.value,10),g>1e3)g=1e3;else if(200>~~g)g=200;f.height=g}if(\"link\"===d.message)if(h=b.createElement(\"a\"),i=b.createElement(\"a\"),h.href=f.getAttribute(\"src\"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener(\"message\",a.wp.receiveEmbedMessage,!1),b.addEventListener(\"DOMContentLoaded\",c,!1),a.addEventListener(\"load\",c,!1)}(window,document);\n\/\/--><!]]>\n<\/script><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/wordpress.org\/news\/2015\/12\/clifford\/embed\/\" width=\"600\" height=\"338\" title=\"Embedded WordPress Post\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe>"}"

このままではちょっとわかりづらいので、NetBeans のデバッガ上の表示で見てみました

wp4.4-embed-get-json

この中の HTML コードが埋め込み用として記事に関連付けされてデータベースに保存されます

"<blockquote data-secret="rn9T1rCgXv" class="wp-embedded-content">
  <a href="https://wordpress.org/news/2015/12/clifford/">WordPress 4.4 &#8220;Clifford&#8221;</a>
</blockquote>
<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="display:none;" src="https://wordpress.org/news/2015/12/clifford/embed/#?secret=rn9T1rCgXv" data-secret="rn9T1rCgXv" width="600" height="338" title="Embedded WordPress Post" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>"

このデータは blockquote URL とタイトルが書かれていて、その下に iframe で埋め込みデータ用のURLやその他の情報がセットされています

とりあえず記事に埋め込むデータの取得はここで完了です

埋め込みデータの表示

保存している記事には、URLが記述されているだけですが、そこからブログカード形式で表示するまでの仕組みを見ていきましょう

URL検出

その投稿記事が要求されるとコンテンツ内にあるURLを検出を行います(タグ等で囲まれずに行頭から書かれているかとか embed ショートコードで囲まれているか等の検出ルールがある)

URLが検出されたら、そのURLと投稿IDを使いデータベースから埋め込み用コードを取得します(データベースにない場合は、先ほど紹介した取得処理も合わせて行う場合があります)

引用文として表示

取得した embed カード用の埋め込みコードは、引用(blockquote)文として一旦表示されます

表示用コンテンツリクエスト

次に、WP4.4 から含まれた wp-embed.min.js スクリプトによって、iframe 内のURLとシークレットキーを使って、非同期に iframe 内に表示するためのコンテンツのリクエストが行われます

※何らかの理由でスクリプトが機能しない場合は、引用文として記事タイトルのリンク表示だけしか出来なくなります

embed カードの表示

コンテンツリクエストが有効なら、embed カード用の wp-includes/embed-template.php テンプレートを使ってカード形式にマークアップされたHTMLが iframe 内に出力されて、今まで表示されていた引用文が隠されます

従って、このカードが埋め込まれたページをブラウザで表示する毎に、スクリプトからのリクエストによりサイトにアクセスされてカード形式のコンテンツが iframe 内に描画されるというわけです

以上のような仕組みで埋め込まれたカードが表示されることとなります

おおよその流れはあっていると思いますが、細かなところで間違って記述しているかもしれませんので参考程度に見てください (^^)

 

本当に使って大丈夫?

仕組みがある程度判ると、これ本当に使って大丈夫かなという不安でいっぱいです

iframe 埋め込み形式への疑問

最近は低料金のレンタルサーバーでも、そこそこの性能なのでそれほど心配する必要はないのかも知れませんが、データ転送量やCPU稼働率に対しての制限が設けられていたりします

例えば、なんちゃら砲とやらでアクセス急増した場合を想定してみましょう

仮に10万PVのサイトから従来のリンクで紹介された場合なら、実際にリンクをクリックしないとサイトへのアクセスはないわけですが、そのうちの3%の人がクリックするだけで3000アクセスになります

これが、通常のリンクでなくこの embedカードで紹介されたとすると、リンクをクリックしなくとも10万のリクエストが発生して embed カードが表示されるわけです。

沢山のサイトでこの形式で紹介されると、まるでサイバー攻撃に晒されているかのような状態になってしまうことはないのでしょうか? 大手プロバイダーを使いキャッシュ等で対策していることが前提の様な機能にしか思えません

少なくとも紹介した側でキャッシュデータを利用するなどして、紹介したサイト先に負荷をかけないような工夫をすることが必要なのではないかと。

さらに、管理画面でこの機能を止める設定も必要なのではないかと思われます

ここまで書いて、もしかしたら私が誤解しているだけで、いくらなんでも何らかの対策が行われているのかもと言う気もしてきましたが、やっぱり心配です (^_^;)

embed-template の疑問

この機能のテストをしていて、非常に荒い画像がカード上部に埋め込まれることがありました

興味ある方は、テンプレートの中身をちょっと見てもらいたいのですが、アイキャッチ画像がある場合の画像表示が、縦横比で 1.75 を基準に rectangular か squere かを決定しています

ここで rectanglar ならカードの上部に大きな画像を表示して、 squere なら左に小さな画像を表示するようになっています。

画像サイズを決めている処理もちょっと不可解で、使われる画像の大きさを考慮せずに表示位置を決めているので、運が悪いと解像度の荒いサムネイルがカード上部に表示され大変残念なことになってしまいます

サイドに小さな画像表示するだけで十分な気がします

既にあるサービスやプラグインでいいのでは

ブログカードは、はてなブログカードが使われるようになってから、見栄えやコンテント内のアクセントになることで多用されています

はてなブログカードやプラグイン等に実装されているブログカードなら紹介先に負荷をかけないよう考慮されている場合が多いと思うので、新たに WordPress の機能として組み込む必要なかったのではないかという気もします。もしくは、はてなのように wordpress.com サイトに連携したサービスとして実装すべきなのではという気もします。

ここで自作のブログカードの宣伝です (^^)

Celtispackプラグインという公式サイトには登録していないプラグインの中でブログカードの機能を提供しています。このブログカードは、OGPデータを利用してカード形式のデータを表示しています。また、アイキャッチ画像やアイコンはキャッシュとして保存しているので相手先に負荷をかけないようになっています。

WordPress Plugin : Celtispack
WordPressでブログをしているなら絶対おすすめの Celtispack プラグインパックの紹介です。画像最適化やちょっと気の利いた機能が満載です。AMPに対応している機能も沢山あります (^^)
WordPress Plugin : Celtispack

ということで、私は自作のブログカードを使い続けるわけですが、記事を紹介してくださるかたに WPの embed カード形式は使わないで下さいとお願いも出来ませんので、oEmbed 検出用のタグを出力しないようにして使えなくする為の設定を調べてみました。

タグ出力は止めるが、他サイトの紹介で利用するかもという場合のコードです
( 他サイトの紹介でも使わないという場合は、スクリプトも停止しておきます)

//oEmbed endpoint 検出用リンク停止(oEmbed サービス提供はしないが他のサイトの埋め込みは可能)
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
//WP REST API リンク <http://www.example.com/wp-json/>; rel="https://api.w.org/"
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

// REST API サービス無効化(REST API を無効化すると embed card を確実に無効化出来るが、他用途での REST API も使用できなくなるので止めないほうがよさげ )
//add_filter('rest_enabled', '__return_false');

//スクリプト wp-embed.min.js を停止すると他サイトの埋め込みを出来なくなるのでこれは活かす
//remove_action( 'wp_head', 'wp_oembed_add_host_js');

この機能を使うか使わないかは貴方次第です。

WP4.4にすると自動的に有効化される機能なので、準備と対策をしっかりしておかないとある日突然アクセスが増えてサイトがダウンなんてことが起こるかもしれません

心配しすぎですかね (^^)

 


まとめ記事紹介

go-to-top