simpleplus_vertical_home_top
ソニーペイメントサービスの2つの決済モジュール

特定ページでのループ内表示のコツ

トップページなどで、商品一覧を表示する際に the_excerpt()the_content() といった本文を出力するテンプレートタグを使おうとして困ったことはないでしょうか?

Welcart では、特定条件下にこの2つのテンプレートタグにフィルターをかけています。
is_singular() でない場合( is_single()is_page()is_attachment() のいずれも偽である場合)に、商品のメイン写真と本文をタグ付きで出力するようになっています。
なので、ループ内で the_content() と記述すると本文以外に商品のメイン画像が横に表示されます。

これは通常の一覧ページや検索結果などのアーカイブには有効ですが、トップページの「お勧め商品」などグローバルな wp_query を操作した場合(アーカイブとみなされる)は自由なレイアウトができなくなってしまいます。

そこで考えられる対策が remove_filter です。
スクリプトは次の通りです。

<?php
remove_filter( 'the_excerpt', array( $usces, 'filter_cartContent' ), 20 );
the_excerpt();
?>
<?php
remove_filter( 'the_content', array( $usces, 'filter_cartContent' ), 20 );
the_content();
?>
1つ目は the_excerpt() に対するフィルター、2つ目は the_content() に対するフィルターを外しています。
これによりメイン画像のサムネイルなしの本文が出力されるようになります。