3

这是模板 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

4 回答 4

4

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

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

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

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

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

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

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

于 2013-05-20T13:45:55.243 回答
1

要添加简短描述,我邀请您将这段代码添加到所需位置:

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

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

do_action( 'woocommerce_after_shop_loop_item_title' );

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

原谅我的英语不好。

于 2018-04-04T09:10:30.577 回答
0

您可以从 content-single-product.php 复制 php 脚本并将它们显示在模板 content-product.php 上。这种方式更好,因为您将能够使用 HTML 和 CSS 控制元素。

于 2015-04-23T08:52:02.627 回答
0

试试这个代码。我自定义了东西的顺序,所以图像在底部而不是顶部,但所有变化都会显示出来。我唯一不能做的就是把两个类放在一排而不是堆叠起来只是为了节省空间,但我的 php 是有限的。如果有人可以添加到这个以定制成一个更好的表,我很想听听。

    <?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>

于 2015-09-25T20:46:00.930 回答