Woocommerce custom content-product.php

时间:2013-05-19 16:47:46

标签: wordpress woocommerce

这是模板content-product.php

的基本代码
<li <?php post_class( $classes ); ?>>

<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>

<a href="<?php the_permalink(); ?>">

    <h3><?php the_title(); ?></h3>
    <?php
        /**
         * woocommerce_before_shop_loop_item_title hook
         *
         * @hooked woocommerce_show_product_loop_sale_flash - 10
         * @hooked woocommerce_template_loop_product_thumbnail - 10
         */
        do_action( 'woocommerce_before_shop_loop_item_title' );
    ?>


    <?php
        /**
         * woocommerce_after_shop_loop_item_title hook
         *
         * @hooked woocommerce_template_loop_price - 10
         */
        do_action( 'woocommerce_after_shop_loop_item_title' );
    ?>

</a>

<?php do_action( 'woocommerce_after_shop_loop_item' ); ?>

问题是我需要为主页面中的每个产品显示更多信息。这里它只显示标题,图像,价格和添加到购物车按钮。我需要能够显示,简短描述,属性,自定义字段等...

我怎样才能做到这一点?

问候。

4 个答案:

答案 0 :(得分:4)

看起来你需要添加一些钩子。

以下是有关如何执行此操作的参考:http://codex.wordpress.org/Function_Reference/add_action

我建议制作一个单独的插件,为'woocommerce_after_shop_loop_item_title'或'woocommerce_before_shop_loop_item_title'添加钩子。

然后在自定义函数中添加所需的信息。

或者更好的是,我正在查看此文件的source code,它说您可以通过复制此文件并将其放入主题来覆盖整个文件:yourtheme / woocommerce / content-product.php

这样你就可以直接对该文件进行调整。

要添加简短描述,您需要使用wordpress提供的the_excerpt()功能。

答案 1 :(得分:1)

要添加简短说明,我邀请您将此段代码添加到所需位置:

?>
<p class="xxx">
<?php echo $post->post_excerpt; ?>
</p>
<?php

例如,在标题下添加它只需将其放在

do_action( 'woocommerce_after_shop_loop_item_title' );

对于我让你在css中管理的风格。

请原谅我糟糕的英语。

答案 2 :(得分:0)

您可以从content-single-product.php复制php脚本并将其显示在模板content-product.php上。这样做更好,因为您可以使用HTML和CSS控制元素。

答案 3 :(得分:0)

试试这段代码。我定制了东西的顺序,所以图像在底部而不是顶部,但所有变化都将显示。唯一不能做的就是连续放两个类而不是堆叠只是为了节省空间但我的php是有限的。如果有人可以添加到这个以自定义为更好的表,id喜欢听到它。

&#13;
&#13;
    <?php
/**
 * The template for displaying product content within loops.
 *
 * Override this template by copying it to yourtheme/woocommerce/content-product.php
 *
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.4.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

global $product, $woocommerce_loop;

// Store loop count we're currently on
if ( empty( $woocommerce_loop['loop'] ) ) {
	$woocommerce_loop['loop'] = 0;
}

// Store column count for displaying the grid
if ( empty( $woocommerce_loop['columns'] ) ) {
	$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );
}

// Ensure visibility
if ( ! $product || ! $product->is_visible() ) {
	return;
}

// Increase loop count
$woocommerce_loop['loop']++;

// Extra post classes
$classes = array();
if ( 0 == ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] || 1 == $woocommerce_loop['columns'] ) {
	$classes[] = 'first';
}
if ( 0 == $woocommerce_loop['loop'] % $woocommerce_loop['columns'] ) {
	$classes[] = 'last';
}
?>
<li <?php post_class( $classes ); ?>>

	<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>

<?php

		/**
		 * remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
                 * remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
                 * remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
                 */
                do_action( 'woocommerce_single_product_summary' ); 


	?>

	<a href="<?php the_permalink(); ?>">	

	<?php
			
                         /**
			 * woocommerce_before_shop_loop_item_title hook
			 *
			 * @hooked woocommerce_show_product_loop_sale_flash - 10
			 * @hooked woocommerce_template_loop_product_thumbnail - 10
			 */
			do_action( 'woocommerce_before_shop_loop_item_title' );          

			/**
			 * woocommerce_shop_loop_item_title hook
			 *
			 * @hooked woocommerce_template_loop_product_title - 10
			 */
			do_action( 'woocommerce_shop_loop_item_title' );

			/**
			 * woocommerce_after_shop_loop_item_title hook
			 *
			 * @hooked woocommerce_template_loop_rating - 5
			 * @hooked woocommerce_template_loop_price - 10
			 */
			do_action( 'woocommerce_after_shop_loop_item_title' );
		?>

	</a>

	

</li>
&#13;
&#13;
&#13;