フィードの場合はショートコードを無効にするには?
それでは、どのようにショートコードを操作すればいいのでしょうか?
例えば下記の2つの方法はどうしょうか。
- フィードの場合は展開しないショートコードにする
- フィードの場合は、ショートコードを取り除くフィルターフックを設定する
それぞれ見ていきましょう。
フィードの場合は展開しないショートコードにする
ショートコード内で、フィードのときは何もしないように変更します。
function footag_func ($atts) {
if (is_feed()) return ''; // フィードの場合は何も返さない。
return 本来の処理
}
add_shortcode('footag', 'footag_func');
フィードの場合は、ショートコードを取り除くフィルターフックを設定する
フィードの場合は、本文を取得する際のフィルターフックでショートコードの記述を取り除くようにします。
function foo_func ($content) {
if (is_feed()) {
$content = strip_shortcodes($content);
}
return $content;
}
add_filter('the_content', 'foo_func');
すべてのショートコードを無効にしたい場合などは後者、ショートコードによって有効無効を細かく調整したい場合は前者といった感じでしょうか。
ただし、プラグインで実装されたショートコードの場合は、前者の方法だと難しいときがあるかもしれません。
さいごに
適切なフックを見極めることはとても大事なので、気をつけてみてください。
それでは。
【WordPressでお困りのことはありませんか?】
※ WordPressのカスタムフィールドを利用して、過去記事の公開日時を自動で変更する方法
※ WordPressで「preview」すると「not found」になるときの対処法
※ WordPressの記事内の画像をData URIで扱ってサイトを高速化させる方法
※ WordPressでURLやタイトルなどから記事情報を取得する方法
※ アップデートしても大丈夫!WordPressの子テーマでデザインのカスタマイズをする方法
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。