我是新手,需要一些帮助。
这里有一些我想要更改的示例代码,我想将h3标签交换为h5标签。
这是第一页
<?php
/**
* woocommerce_before_subcategory_title hook
*
* @hooked woocommerce_subcategory_thumbnail - 10
*/
do_action( 'woocommerce_before_subcategory_title', $category );
?>
<h3>
<?php
echo $category->name;
if ( $category->count > 0 )
echo apply_filters( 'woocommerce_subcategory_count_html', ' <mark class="count">(' . $category->count . ')</mark>', $category );
?>
</h3>
<?php
/**
* woocommerce_after_subcategory_title hook
*/
do_action( 'woocommerce_after_subcategory_title', $category );
?>
我试图替换这部分代码:
<h3>
<?php
echo $category->name;
if ( $category->count > 0 )
echo apply_filters( 'woocommerce_subcategory_count_html', ' <mark class="count">(' . $category->count . ')</mark>', $category );
?>
</h3>
用这个:
<div class="caption-non-move">
<h5>
<?php
echo $category->name;
if ( $category->count > 0 )
echo apply_filters( 'woocommerce_subcategory_count_html');
?>
</h5>
</div>
这是我到目前为止所做的事情。
<?php
// Add text to content-product-cat to help with styling
add_action('woocommerce_before_subcategory_title', 'woohook_before_subcategory_title');
function woohook_before_subcategory_title() {
ob_start();
}
add_action('woocommerce_after_subcategory_title', 'woohook_after_subcategory_title');
function woohook_after_subcategory_title() {
$subcategory_title = ob_get_clean();
echo "<div class='caption-non-move'>";
echo str_replace('h3>', 'h5>', $subcategory_title);
}
?>
这是第二页
<li <?php post_class( $classes ); ?>>
<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
<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' );
?>
<h3><?php the_title(); ?></h3>
<?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' ); ?>
</li>
在第二页上,我试图替换这部分代码
<h3><?php the_title(); ?></h3>
与
<div class="caption"><h5><?php the_title(); ?></h5>
<div class="category-main-points"><?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>
</div>
这是我到目前为止第二页的内容
<?php
// Add text to content-product-cat to help with styling
add_action('woocommerce_before_shop_loop_item_title', 'woohook_before_shop_loop_item_title');
function woohook_before_shop_loop_item_title() {
ob_start();
}
add_action('woocommerce_after_shop_loop_item_title', 'woohook_after_shop_loop_item_title');
function woohook_after_shop_loop_item_title() {
$doh_title = ob_get_clean();
echo "<div class='caption'>";
echo str_replace('h3>', 'h5>', $doh_title);
}
?>
答案 0 :(得分:1)
如果h3标签嵌入到模板本身(看起来像是),并且您不想或不能更改原始代码。你可以做到这一点的唯一方法是使用php输出缓冲。
<?php
add_action('woocommerce_before_subcategory_title', 'woohook_before_subcategory_title');
function woohook_before_subcategory_title() {
ob_start();
}
add_action('woocommerce_after_subcategory_title', 'woohook_after_subcategory_title');
function woohook_after_subcategory_title() {
$subcategory_title = ob_get_clean();
echo str_replace('h3>', 'h5>', $subcategory_title);
}
?>
另请注意,do_action的正确挂钩是add_action,而不是add_filter。