Steamer Lane Studio技術備忘録WordPress

ついでにfeed出力でwpautopが働く場合の対処

wordpress ついでにfeed出力でwpautopが働く場合の対処
作成日: 2024年6月16日

Feedは抜粋にしてれば問題ないけどね、いろいろなもの作っていろいろなものと連携させたりすると、Feedにcontent:encodedタグつけてCDATAセクションで囲んだりとかしたりする。
厄介だったのがFeedで固定ページにショートコードでテンプレ呼び出ししたらその中にwpautopが効いちゃった件。
投稿にはwpautop含めた自動成型するしないの選択を設けていて、個人的にはsingleは全autopでpageはテンプレ替わりにしてるから普通にコーディングよろしく書くのだがショートコードで呼んだ中身は呼び出し元のコントロールを承継していなかった。
Feedだけってのも変な話だが、実際なっちゃったのでFeedにwpautopが効かなくなるfunction.phpコード。

// テーマの functions.php に追加するコード
function disable_wpautop_in_feed($content) {
if (is_feed()) {
remove_filter('the_content', 'wpautop');
} return $content;
}
add_filter('the_content_feed', 'disable_wpautop_in_feed', 9);

これ入れればOK。
外部連携などをAll in oneでやるなら不要かも。
極力プラグイン(開発終わると困るケースも少なくないしね)使わない主義だからfunctionにはこうした小細工も必要だが、こんなもん考えることで(無駄かもしれない)知恵も付くのです。尤も最近じゃ自分で考えないでAIに作ってもらってるけどな。。。