犯罪と罰 というタイトルのエントリがあるとしましょう。
次の行を使用して、私のエントリータイトルの文字数を数えようとしました。
echo strlen( get_the_title() );
私はコードが Crime&Punishment に18文字を与えると思っていましたが、結果は23文字になりました。
上記のコードでは、タイトル内のシンボルがHTML codeとして読み取られるため、希望する結果が得られませんでした。このような場合の回避策はありますか?
実際には2つの問題があります。
&
は&
としてエンコードされているので、最初に html_entity_decode()
を使用する必要があります。
マルチバイト文字は複数のバイトを必要とし、strlen()
はそれらで失敗します。 strlen()を使用しないでください 。
だから、このようなものを使用してください:
$title = html_entity_decode( get_the_title(), ENT_XML1, 'UTF-8' );
$length = mb_strlen( $title, 'utf-8' );
試してください:
<?php echo strip_tags(strlen(get_the_title())); ?>