こんにちは
remove_all_shortcodes();
をコンディショナルタグと組み合わせて使ってみてはどうでしょう
トピック投稿者
meai
(@meai)
nobitaさん
ご回答ありがとうございます。
調べてみたのですが、
remove_all_shortcodes();が全てのショートコードを抹消してしまう
ということで、具体的な条件分岐というものが想像つかないのですが、
どのようにするのがよいのでしょうか・・・
トピック投稿者
meai
(@meai)
返信が遅くなってしまってすいません。
nobitaさんが教えてくださいましたリンクにあった、
function remove_shortcode_from_index($content) {
if ( is_home() ) {
$content = strip_shortcodes( $content );
}
return $content;
}
add_filter('the_content', 'remove_shortcode_from_index');
というコードをfunctions.phpに貼り付けて、
投稿画面のビジュアルでcontact form 7のショートコードを利用してみましたが、
投稿された記事で普通にお問い合わせフォームが表示されました。
(投稿画面でもショートコードが機能してしまいました)
remove_shortcode_from_indexやremove_all_shortcodes();などの
使い方もわからず、困っています。
どのようにするのが良いのか、もう少し助けていただけませんでしょうか
is_home
だからホーム画面だけ有効になってるだけじゃないですか?
投稿の個別記事を表示している時なら、is_single
じゃないですか?
もしくはアーカイブ系にも対応するなら 'post' == get_post_type()
日本語Codex:条件分岐タグ
一応、動作確認を行ってみました
WordPress3.5.1
twenty eleven.
テストしたショートコードは、contact form 7 と gallery
一応トップページと、シングル投稿でチェックしましたが、こちらの環境では、動作するようです。
キャッシュプラグインや、ブラウザキャッシュを切ってから、もう一度やってみるといいと思います。
出来ると思ってやると、意外と出来たりします。
capture
http://tenman.info/labo/snip/files/remove_shortcode_from_index.png
test code
function remove_shortcode_from_index($content) {
if ( is_home() or
is_single() ) {
$content = strip_shortcodes( $content );
}
return $content;
}
add_filter( 'the_content', 'remove_shortcode_from_index' );
トピック投稿者
meai
(@meai)
nobitaさん、gatespaceさん
ご返信ありがとうございます。
こちら側からの返答が遅くなってしまいまして、
申し訳ありませんでした。
nobitaさんのtestcodeで、投稿画面でショートコードは利用できないようになり、
固定ページではショートコードが利用できる状況となりました。
ありがとうございます。
確認というか、気になった部分なのですが、
if ( is_home() or is_single() )
という部分でis_singleが効いていたために、
投稿画面でショートコードが利用できないようになった、
という認識で大丈夫でしょうか?
確認というか、気になった部分なのですが、
if ( is_home() or is_single() )
という部分でis_singleが効いていたために、
投稿画面でショートコードが利用できないようになった、
という認識で大丈夫でしょうか?
これは、条件分岐タグと呼ばれる WordPress関数です
既出ですが、詳細は以下を参照してください。
http://wpdocs.sourceforge.jp/%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%BF%E3%82%B0
say: gatespace
もしくはアーカイブ系にも対応するなら ‘post’ == get_post_type()
などの、コメントにも留意して、どのような場面で、動作するのかを検証しがならカスタマイズを楽しんでください :)
// ショートコードを無視する関数 $content は投稿の本文
function remove_shortcode_from_index( $content ) {
if ( is_home() or is_single() ) { // いま表示しているのが、ホームまたは投稿の個別ページの場合
$content = strip_shortcodes( $content ); // 投稿の本文からショートコードを削除
}
return $content; // 結果を戻す
}
// the_contentが使われる(表示される時)に remove_shortcode_from_index という関数を実行してね
add_filter( 'the_content', 'remove_shortcode_from_index' );
トピック投稿者
meai
(@meai)
nobitaさん、gatespaceさん
何度も返信が遅くなってしまい、本当に申し訳ありませんでした。
どちらの解説も分かりやすく勉強になりました。
具体的な勉強報告などは難しいですが・・・
今後も頑張りたいと思います。
もし、わからないことがあったら
またいろいろと教えていただけると嬉しいです
今回は本当にありがとうございました!