WooCommerce [products] shortcodeには多くの機能がありますが、「テンプレート」機能がありません。このようにカスタムテンプレートを定義するにはどうすればよいですか。
[products class="simple-list"]
テーマのfunction.phpを開き、以下を追加してください
add_action( 'woocommerce_shortcode_before_products_loop', 'roka_before_products_shortcode_loop', 1, 10 );
add_action( 'woocommerce_shortcode_after_products_loop', 'roka_after_products_shortcode_loop', 0, 10 );
function roka_before_products_shortcode_loop( $atts ) {
$GLOBALS[ 'roka_woocommerce_loop_template' ] =
( isset( $atts[ 'class' ] ) ? $atts[ 'class' ] : '' );
}
function roka_after_products_shortcode_loop( $atts ) {
$GLOBALS[ 'roka_woocommerce_loop_template' ] = '';
}
次に、ファイルのcontent-product.php
をテーマのwoocommerce
フォルダにコピーして上書きします。
<li <?php post_class(); ?>>
という行を見つけ、その後に次を追加します。
<?php
if(
isset( $GLOBALS[ 'roka_woocommerce_loop_template' ] ) &&
$GLOBALS[ 'roka_woocommerce_loop_template' ] == 'simple-list'
) {
echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a>';
return;
}
?>