WordPressのmetaやogpに、wp-contentから取得した本文を設定する

WordPressの抜粋を使っていれば、the_excerpt();で簡単に設定しちゃうんですけど、ラクしたいので、metaやOGP情報のdescriptionに、記事の本文の冒頭120文字くらいを設定しときます。

【WordPress】投稿本文の文字数を制限してテキストのみで取得する方法(wp_trim_wordsが最も正確)

この記事に書かれている通り、wp_trim_wordsがベストプラクティスだと思います。

しかし、このままでは本文にソースコードが含まれている場合、記号がエンコードされずに出力されてしまうのでサイトの上の方にソースコードが表示されたりして、崩れてしまいます。

そういうときはesc_html()で囲って上げれば完璧。

<?php
$remove_array = ["\r\n", "\r", "\n", " ", " "];
$content = wp_trim_words(strip_shortcodes(get_the_content()), 120, '…' );
$content = str_replace($remove_array, '', $content);
echo esc_html($content);
?>

改行を削除した「記事の本文の冒頭120字」をmetaに設定できました。

おわり🏆

公開日