「Rich Text Tags, Categories, and Taxonomies」というプラグインをWordPressに入れて、カテゴリページにコンテンツを追加できるようにしましたが、TwitterやYoutubeのURLを貼ったときに、自動的に埋め込みがされませんでした。対処法を発見したのでメモとして残しておきます。
問題:oEmbedが動かず埋め込みが動作しない
TwitterやFacebookのURLを入力しても、投稿なら自動的に埋め込みに変換されて表示されるはずが、Rich Text Tags, Categories, and Taxonomiesを使ったカテゴリページへのコンテンツ表示だと、URLがむき出しに表示されてしまいました。
調べていると、WordPressにはoEmbedという機能があって、この機能が自動的に特定のサイトのURLだけ、自動的に埋め込み表示に変換しているようです。カテゴリページでoEmbedが動いていないので、埋め込みに変換されていません。
解決:add_filterでoEmbedを起動
普段、oEmbedは投稿や固定ページの「content」に対して起動しています。
しかし、今回私が使用した「Rich Text Tags, Categories, and Taxonomies」のプラグインのコードを見ると、カテゴリページに表示させるときに使用しているのは「term_description」でした。contentではないので、oEmbedが自動的に起動していません。
解決方法は、function.phpでadd_filterを使ってoEmbedをterm_descriptionでも起動することです。下記コードをfunction.phpに追記するだけで解決されました。
add_filter( 'term_description', array( $wp_embed, 'autoembed' ), 8 );
もし、TwitterやYoutubeなどのURL埋め込みが自動で動作しない場合は、その出力方法を探り(今回のterm_descriptionのように)、add_filterでoEmbedを起動してあげれば動作すると思われます。
※エンジニアではないため、情報に誤りがありましたら教えてください
Google検索の変遷から見えてくる「Googleがキュレーション化する日」
[/su_note]