web関連
【wordpress】ループ外でプレーンな本文を取得する方法
wordpressの投稿や固定ページ本文のテキストだけループ外で取得したいなぁと思ったときの備忘録
ループ外でプレーンな本文を取得するコード
<?php
global $post;
$content = $post->post_content ;//本文取得
$content = strip_shortcodes( $content );//ショートコ―ド除去
$content = wp_strip_all_tags( $content,true );//htmlタグ周り除去
$content = mb_substr($content,0,150).'...';//抜粋
?>
<?php echo $content; ?>//出力
meta周りで使いたくて調べた
メモ
調べていた時に色々出てきたのでメモ
本文取得
global $post;
$post->post_content ;
でループ外で本文取得できるけどショートコ―ドなんかはテキストで
[contact-form-7 id="5" title="お問い合わせ"]
って吐き出されちゃうからショートコ―ドちゃんと出力したいときは
apply_filters( 'the_content', $post->post_content );
を使った方がいい
htmlタグとか除去
wp_strip_all_tags( $content );
でhtmlタグとかコメントアウトとか除去したプレーンなテキストを取得できるけど連続した空白文字を1つのスペースに変換する時とかは引数に「true」を指定するとテキスト同士の隙間が詰まったプレーンなテキストが取得できる
wp_strip_all_tags( $content , true );
「strip_tags()」はphpの関数
「wp_strip_all_tags()」はwordpressの関数
「wp_strip_all_tags()」はwordpressの関数
抜粋
過去に備忘録あげてたからリンク貼る
「global $post;」いらないかも
「var_dump($post);」で中身みたら普通に取得できてた…
functions.phpとかで使うときは必要なのかな?ちょっと勉強しないとわからない…