気付いたらBetaがリリースされてた
追記 12/9
ついに WordPress 4.4 “Clifford” がリリースされました!WordPress 4.4 (英語版) はこちらからダウンロードすることができます。(日本語版はこちらからダウンロードできます。)または、管理画面から自動更新が利用できるのでアップデートしましょう!
しばらくこのブログを更新することが出来ませんでしたがそろそろ10月もおわり。今月末にはWordCamp Tokyoがありますね!!楽しみですね!!ちなみに私は行けません!!!遠いです東京!!!(
さて、気付いたら既にBeta1がリリースされていたようですが、WordPress 4.4のリリースがおおよそ1ヶ月半後、大体12月の2週目辺りを目処に予定されています。
今回は自分の知っているWordPress 4.4の新機能等を紹介します。
なおこのバージョンは現在開発中です。今後リリースまでに大きく変更される可能性があるのでご注意ください。
WordPress 4.3 のリリース以降、WordPressのtrunkブランチには現在約1800以上のコミットが行われてきました。
いくつか大きな機能の追加や変更があったほか、内部やUIに数々の変更が加えられてきました。
Beta 1 のリリースノートに紹介されている順に紹介。
Twenty Sixteen
毎年年末アップデートの新しい公式テーマ。
2016年の公式テーマ Twenty Sixteen は以前よりGitHub上で開発が進められてきました。
既に@mayukojpnさんのブログにて使用されている。
http://blog.mayuko.me/new-wordpress-default-theme-twenty-sixteen-is-on-github/
(このブログで使用されている Twenty Sixteen 少しバージョンが古い気がするけど…)ブログに適したなかなかいいテーマなんじゃないかなと思いますまる(こなみ)
抜粋をイントロ文として挿入してくれるようになってたりするのだとか。
WordPress 4.3を利用中でも公式ディレクトリからインストール可能…だったけどいつの間にか4.4以降が必要になりました。
12/9 追記
以前のバージョンの WordPress から自動更新で更新を行った場合、Twenty Sixteen は自動的にはインストールされません。
外観→新規追加よりインストールする必要があります。
Responsive Images
以前からコアに統合されると噂のあったRICG Responsive Imagesが今回ついにコアに統合されました!
Responsive Images は HTML5のsrcset属性を利用して、画面やウィンドウの幅や密度が多様化した中適切な解像度の画像を配信できるようにするもの。
通常通り画像をアップロードして挿入し記事を保存しておけば、出力の際に自動的にsrcset属性が追加されます。
実際の出力HTMLの例:
上記リンク先記事にあるようにadd_image_size
で生成するサイズの種類増やしておく方が効果出るのかも。
どうやって無効化するの?
基本的に無効化する必要はないかと思いますがもしやむを得ず無効化したい場合は次のような感じでfilter無効化すればいいと思われ。
1 |
remove_filter( 'the_content', 'wp_make_content_images_responsive' ); |
※この記事内で紹介している無効化の方法は基本的にテストしていません。
Embeds
WordPress 4.3 のリリースから余りたたないある日、たまたま見つけた時からとても楽しみにしていた機能がWordPressに搭載されました。
なんと、WordPressの投稿をとても簡単にほかのWordPressやその他のHTMLの利用できる環境へ埋め込めるようになったのです。(TwentySixteenの項でも利用しました:))
よくわからない人は少し前に話題になったはてなブログのブログカードを思い浮かべてください。同じようなものです。
この機能はTwitterやYouTubeの埋め込みでもおなじみのoEmbedを利用しているため、ブログにURLだけの行を挿入するだけで簡単に埋め込めます。(このoEmbedは埋め込まれる側が出力するHTMLをiframe
で埋め込む形になっています。)
http://blog.mayuko.me/wordpress-4-4-oembed-api/
WordPress の oEmbed は従来ホワイトリスト制だったのですが、今回この機能の導入により自動スクレイピングになりました。(機能自体は前からあってオプトインになっていたよう)
ちなみにはてなブログもブログカードをoEmbedで出力しているので同様にうめこむことができるようになるとか。プレビュー:
こんな感じに入力してるぽよ
稼働中のサイトで今すぐ試したいって方はベータ版を使う以外にプラグインとして導入できます。(GitHub(プラグインディレクトリからは削除されていました。))
なおこの機能は後述するREST-APIの一機能として実装されています。
どうやって無効化するの?
次のコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
// 自動巡回をしないようにする add_filter( 'embed_oembed_discover', '__return_false' ); // Embeds remove_action( 'rest_api_init', 'wp_oembed_register_route' ); remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request' ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links' ); remove_action( 'wp_head', 'wp_oembed_add_host_js' ); /* これ以下はべつにいらない ** remove_action( 'embed_head', 'print_emoji_detection_script' ); remove_action( 'embed_head', 'print_emoji_styles' ); remove_action( 'embed_head', 'print_embed_styles' ); remove_action( 'embed_head', 'print_embed_scripts' ); remove_action( 'embed_head', 'wp_print_head_scripts', 20 ); remove_action( 'embed_head', 'wp_print_styles', 20 ); remove_action( 'embed_head', 'wp_no_robots' ); remove_action( 'embed_head', 'rel_canonical' ); remove_action( 'embed_head', 'locale_stylesheet' ); remove_action( 'embed_footer', 'wp_print_footer_scripts', 20 ); remove_filter( 'excerpt_more', 'wp_embed_excerpt_more', 20 ); remove_filter( 'the_excerpt_embed', 'wptexturize' ); remove_filter( 'the_excerpt_embed', 'convert_chars' ); remove_filter( 'the_excerpt_embed', 'wpautop' ); remove_filter( 'the_excerpt_embed', 'shortcode_unautop' ); remove_filter( 'the_excerpt_embed', 'wp_embed_excerpt_attachment' ); remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result' ); remove_filter( 'oembed_response_data', 'get_oembed_response_data_rich' ); * ================================= */ |
※何度も言うようにこのコードは検証していません
或はプラグインで無効化出来ます。
抱えている問題
SSLなサイトには非SSLコンテンツを埋め込むことができません。(ブラウザにブロックされるでしょう。)
この問題をSlackで携わっているメンバーに問うてみたところ、諦めてね(セキュアなコンテンツにインセキュアなコンテンツを埋め込まないでね)という回答でした。
ということで…
是非あなたのブログ/サイトもSSL対応してください!()
ブログカードと同じ問題点が残る
ブログカードにしろこれにしろリファラ―がちゃんと取れないって問題が解消できていない、多分。この記事の趣旨から脱線しまくるので今回はそんな感じに。
「自分は関係ない」と思ってるプラグイン/テーマ開発者が対応すべき案件
oEmbedはフロントと同様にqueueによるjs/cssのロードを行っているが、そのためか(多分enqueue_scripts
以外にフックしてるのであろう?)無駄なJS/CSSが読み込まれていることがある(さらにはしばしばこれがエラーを引き起こす。)。
is_embed
でコンディションチェックちゃんとやってやる必要がある。
以下は開発者向けの変更です:
REST API (フェーズ1)
長らくプラグインとして開発が進められていたREST-APIの一部がコアにマージされました。e
今回のフレーズ1では認証を必要としない、基本的な記事の取得などが利用できるようになります。
【追記】今回マージされたのはREST-APIの基本的なインタフェースのみです。このインタフェースを利用して独自のエンドポイントを作成することや、プラグインを利用して今後マージ予定の全てのエンドポイントを利用することが出来ます。
WP-REST-APIは長らく開発と調整が続けられてきましたが、途中v2になってから少し仕様に変化があったそう。古い情報だとそれに対応していなかったりすることもあるので注意。
エンドポイントは/wp-json/wp/v2/
以下。
ドキュメント:http://v2.wp-api.org/
GitHub organization: https://github.com/WP-API (クライアントjs向けライブラリも有)
REST-APIは段階的にマージされる予定で、最終的には認証やAPI経由での投稿や更新等にも対応する見込みです。
どうやって無効化するの?
同様にこんな感じでいいんじゃない?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// REST API filters. remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); remove_action( 'wp_head', 'rest_output_link_wp_head' ); remove_action( 'template_redirect', 'rest_output_link_header', 11 ); remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' ); remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 ); // REST API actions. remove_action( 'init', 'rest_api_init' ); remove_action( 'rest_api_init', 'rest_api_default_filters' ); remove_action( 'parse_request', 'rest_api_loaded' ); |
※再三言うけど一切検証していませぬ
引き継ぎプラグイン版を使う際の注意
WP REST API 2.0 beta-4はWordPressコアにマージされたそれとコンフリクトを起こします。必ずアップデート前に最新版のbeta-5にアップデートしてください。
Term Metadata
タクソノミーのmetaが自動的にロードされるようになりました。
同様の機能を持つプラグインを既に使用している場合競合する可能性があるのでアップデート前に無効化する必要があります。
Improved <title> output
従来の<title>
タグは非推奨になりました。
add_theme_support( 'title-tag' );
によるwp_head
への自動挿入を利用してください。
Changeset 35294 – WordPress Trac
※wp_title
は 4.4 Beta4で非推奨ではなくなりました。が、これは非推奨警告の表示に問題があるため再考を必要とするからです。
近々再び非推奨になると思われるので移行してください。
wp_title が wp 4.4 beta 4 で一旦非推奨から戻されてる https://t.co/FpaILzwhm6
— 衣装をください (@hnle0) November 12, 2015
Comments
Comment queries are now split for performance. Also, the underlying WP_Comment
class improves caching and introduces strong-typing. (#8071, #32619)
以上が Beta 1 リリースノートにて紹介されていた主な変更点です。
他にもUIでいくつもの変更がなされています。
たとえば…
さいごに
繰り返しですが早いもので4.4リリースまであと1月半です。来週末にはCampもあります。ぜひ、テスト環境なりなんなりにこのBeta1を入れ、いろいろ試して、そしてCampに挑む、そこでいろいろ話したり Contributor Day でバグ報告したりとか…どうですか?
各機能の詳説記事を書かれた方がいたらお知らせいただけたらリンク貼ります。(oEmbedが使えると埋め込みやすいので嬉しいです)
(変更履歴)
- 10/23 初版公開
- 10/25 一部加筆修正
- 11/01 一部makeブログや無効化プラグイン等について加筆
- 11/11
wp_title
は一時的に非推奨ではなくなりました。 - 11/14 REST-API 追記修正
- 12/09 WP4.4 リリース
- 12/12 Embed 無効化のコードを修正
「WordPress 4.4に備えよ! ~WordPress4.4の新機能~」への6件のフィードバック