1. HOME
  2. 開発・ブログ運営
  3. WordPress
  4. WordPress の記事抜粋( the_excerpt() ) を <head> タグ内で使う場合の注意点
2014年08月07日
大量のファイルを短時間で確実にサーバーへアップロードする方法 ...
2012年05月14日
WordPress で WEB ページ毎に条件分岐タグを使って ...
2013年12月11日
WordPress にアマゾンのアフィリリンクを簡単に作成出来 ...
2012年06月26日
WordPress の記事タイトルの文字数を制限してみた ...
2012年02月12日
WordPress3 でブログを立ち上げて初めに行った設定いろ ...
2012年06月19日
フィルターフックを使って TwitterTools をカスタマ ...

WordPress の記事抜粋( the_excerpt() ) を <head> タグ内で使う場合の注意点

ページの上段に、文字列のゴミが出ちゃったりしている人はいませんか?普通に the_excerpt() を使うとゴミが出ちゃうことも・・・。

WordPress の記事抜粋は the_excerpt() で出力できますが、<head>タグ内で使いたい場合があります。

たとえば、META タグの <meta name=”description”> とか。OGP の<meta property=”og:description” ?>” />とか。

ただ、ページの説明として記事抜粋を使う事は理に叶っていると思いますが、普通に、WordPress のテンプレートタグ( the_excerpt() )を使って、

と、出力すると不具合が出る場合があります。

どんな場合に不具合が出るのか?

記事抜粋内で <a> タグなどの HTML タグを使用している場合に不具合が出ます。例えば、

のような記事抜粋にしてると NG。

この例では「昨日」に昨日書いた記事へのリンクがついてますが、このように記事抜粋に何等かしらの HTML タグが付いていると、出力される META タグが、

のようになってしまうため、意図しない場所で”(ダブルクォーテーション)が閉じられてしまいます。

この場合は、href= の後ろの”で content= が閉じられちゃう。

その結果、画面の上部に意図せず閉じられた「”」以下の文字列が表示されてしまったり・・・。

また、”(ダブルクォーテーション)を使わないタグであっても、タグがそのまま出力されちゃうのでよろしくない。

strip_tags() を使えばオッケー

記事抜粋の中で HTML を一切使わないようにすれば良い訳ですが、そりゃリンクを張りたい場面だってある訳で、さらに過去記事の記事抜粋で HTML タグを使ってたりすると、過去の記事をイチイチ修正するのもメッチャ手間。

そこで登場するのが PHP の関数 strip_tags() です。

この関数は引数に渡した文字列から HTML タグを除去してくれます。なので、

ではなくて、

としてあげれば、記事抜粋の HTML タグが除去されて、ちゃんと

注意する点は、strip_tags() に渡す引数は、the_excerpt() ではなくて get_the_excerpt() を渡してあげる必要があります。

参考:テンプレートタグ/the excerpt – WordPress Codex 日本語版
参考:get_the_excerpt:WordPress私的マニュアル

また、「echo」を付けてあげないと何も出力してくれません。

ということで、今は記事抜粋で HTML タグなんか使ってないもんねー、な人でも今後記事抜粋に HTML タグを書きたくなっちゃう場面も出てくると思うので、記事抜粋( the_excerpt() )を <head>タグとかで使っている場合はとりあえず strip_tags() しておけば安心だと思います。

でわでわ。







「WordPress の記事抜粋( the_excerpt() ) を <head> タグ内で使う場合の注意点」に頂いたコメント & トラックバック

  1. […] 参考: ・「the_excerpt()」をカスタマイズ[WordPress] ・WordPress の記事抜粋( the_excerpt() ) を <head> タグ内で使う場合の注意点 |… ほとんど、上記の参考にしたソースのままです。 […]

この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.