WordPressで文字数制限して本文を出力しつつ、ショートコードを無効にする。

  WordPress 

origin_10155900246

とりあえず任意の文字数で本文を出力する場合

wordpressで記事一覧ページを作成する際、任意の文字数分本文を表示させ、後は「続きを読む」で詳細ページにリンクさせることが多々あるかと思います。その場合、よくある方法としては下記の様なコードをfunctions.phpに記述します。
photo credit: marsmet53 via photopin cc

後はループ内で

みたいに呼び出します。

かなり前、wordpressを触り始めた頃、とある案件で上記のコードでは意図通りに内容を表示できないことがありました。

注:上記のコードは重大な問題をはらんでます。後述するコードをご覧ください。

文字数を制限した投稿にショートコードが含まれているとショートコードも合わせて出力してしまう

例えば文頭にキャプションを設定した画像を挿入してある投稿などがこれにあたります。

上記コードを使用した場合、下の画像のように出力されてしまいました。

ショートコードが機能していない!

ショートコードが機能せず、imgタグが出力されていない・・・。結果strip_tags()での処理もできず、おかしな表示になってしまいました。
困った!ハマりの予感!

解決法:既にwordpress側で加工された本文を取り出して、それを加工する。

$post->post_contentで本文を取得してしまうと、フォーマット調整されず、wordpress側で加工される前の生々しいソースを取り出してしまうんですね。

wordpress側で処理した後のソースを加工してはどうかと調べることしばし。下記のコードで解決出来ました。

ショートコードが消えた〜〜

で、これも大事。
調べてる途中でわかったんですが・・・

$post->post_contentでの出力はちょっと危険

そうなんです、

wordpressの処理を挟んでいない = パスワードロックされた本文も出力してしまう!

ということなんですね。

となると$post->post_contentはちょっと危ないぞ・・・!

 

というわけで、その後は最初に記述したコードではなくwordpress側で処理されたデータで処理するようにしています。

コレ聴きながら書きました!

言わずと知れたoasisのデビュー・アルバム、Definitely Maybe。

発表が1994年!もう20年前!?

ブログの更新情報はこちらで配信しています。

   

follow us in feedly

ad

wpx

  • WordPressのテーマ制作やテンプレートについての概念など、実際にサイトを制作しながらWordPressを知ることができます。
    制作するだけでなく、ユーザビリティからSEO、さらにはパフォーマンス改善にも触れているという充実ぶり。
    オリジナルテーマ制作のお供にどうぞ!
  • サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

    WordPressプラグインの開発から運用までカバーする、プラグイン開発のまさに「バイブル」です。

    セキュリティやマネタイズにも触れられていて参考になるところ多すぎです。
  • JavaScript 第6版

    定番のO'Reilly本でJavaScriptを深く学びましょう!気になる箇所をざっと読むだけでも、とても参考になります。ざっと読みを繰り返すのがオススメ。超良書です!
  • サンプルが大充実!定番のjQuery入門書です。
    本の内容に沿って制作を進めるだけで、即実戦投入できる程の機能ができ上がります。
    解説が丁寧且つチートシートも付いているのでjQueryについての理解がぐんと深まりますよ!
  • wordpressに慣れてくると、今度は痒いところに手が届く細やかなカスタマイズをしたいですよね。phpを利用したカスタマイズからデータベースに直接アクセスする方法がとにかく丁寧に解説されています。個人的には第5章、「プラグインの自作」が物凄く役に立ちました!
PAGE TOP ↑