我的任务是在内部页面(而不是产品页面)中复制WooCommerce产品库。因此,我决定创建一个Child主题并在我的functions.php文件中写一个新的短代码,该文件将从WooCommerce中提取库模板。
到目前为止,这一切都很有效,只是画廊没有显示为画廊 - 它只是以完整尺寸显示所有图像,没有额外的格式。我使用的是错误的模板吗?我一直在使用/templates/single-product/product-thumbnails.php
(默认 - 没有修改)。我是否需要包含一些额外的库?
到目前为止,我的孩子主题functions.php
中有以下内容:
<?php
// these lines just pull in styles from the parent theme
add action('wp_enqueue_scripts', 'enqueue_parent_styles');
function enqueue_parent_styles( ) {
wp_enqueue_style('parent-style', get_template_directory_uri().'/style.css');
}
// here is where we add the shortcode
add_shortcode('woocommerce-gallery', 'woo_gallery_func');
function woo_gallery_func($atts, $content) {
ob_start();
$path = WooCommerce::plugin_path();
global $product;
// this creates a new WooCommerce WC_Product object
// specs: https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html
$product = new WC_Product($atts['id']);
// pull in the template. both options only display
// large images, not a gallery
//include($path.'/templates/single-product/product-thumbnails.php');
wc_get_template('single-product/product-thumbnails.php');
$output = ob_get_contents();
ob_end_clean();
return $output;
}
?>
要使用新的短代码,我使用类似[woocommerce-gallery id="21"]