Simplicityで外部ブログカードが表示されない時【WordPress】

この記事は約3分で読めます。

2017-03-22WordPressカスタマイズ

質問者の写真

Simplicityで外部ブログカードが出なくなっちゃったよっ! 

Simplicityで外部ブログカードがただのテキストに!

文字通りなんですが……それだけじゃありませんでした。
なんとテキストでリンクすら挿入できなくなりました。
何これ!?

ブログカードが表示されない対処法を探す

まず本家サイトに行きました。
するとこんなスレが見つかる。

パーマネントリンク関係のプラグインなんて入れてないしなあ……。
リンクについては、入れると自動で削除される有様。
最初から試すも何もありません。

問題の切り分け

じゃあ何が原因なのか。
試しに子テーマを切り、親テーマに切り替えてみました……あれ? 表示された?
もう一回子テーマに戻すとダメ。
とすると、原因は子テーマの記述にあります。

子テーマを一旦削除して、何もカスタマイズしていない子テーマをインストールし直す。
当然ですが表示されました。
なら……style.css、header-insert.php、functions.phpの順番で戻していく。

──あっ!

なぜ、外部ブログカードが表示されなくなったのか

それは子テーマのfunctions.phpに次の記述をしていたためでした。

remove_filter('the_content','wpautop'); // 記事の自動整形を無効にする
remove_filter('the_excerpt','wpautop'); // 抜粋の自動整形を無効にする

これはWordPressの自動整形機能を切るための記述
消したら無事に動きました。

「WordPressって打ちづらい!」
それが私の第一印象でした。
なんせコピペでも改行がぐだぐだになるんですから。

すると、あちこちの初心者用のサイトで「自動整形を無効にするといいよ」と書いてある。
切ってみたら、確かに打ちやすくなりました。
そして切ってからもしばらくはブログカード表示されていたんです。
それがいきなり表示されなくなったんですよね。
恐らく、この記述と何かのプラグインがかち合ったのでしょう。

あと、Simplicity作者のわいひら様も述べてますが、URLだけを打ち込むより、しっかりリンクしておいた方がいいです。
わいひら様の掲げる理由。

テーマを変える可能性を見越して

でも、それだけじゃない。
今回みたいなトラブルもありますから。

結論

解答者の写真

外部ブログカードが表示されないときは、自動整形機能も疑ってみて。
いざというときのために、URLは「<a href=“http://……」の形式で書いてね。

【2016/11/19追記】 抜本的な解決法

理由がわかりました。
自動整形を切っている場合は、次のコードを

    $res = preg_match_all('/^(<p>)?(<a.+?>)?https?:\/\/'.preg_quote(get_this_site_domain()).'\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+(<\/a>)?(<\/p>)?(<br ? \/>)?$/im', $the_content,$m);

以下の通り修正してください。これで動くと思います。

    $res = preg_match_all('/^(<a.+?>)?https?:\/\/'.preg_quote(get_this_site_domain()).'\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+(<\/a>)?(<br ? \/>)?$/im', $the_content,$m);

参考ページ