1

我是新手,需要一点帮助。

这是我想更改的一些示例代码,我想将 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);
}
?>
4

1 回答 1

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。

于 2013-04-20T23:54:22.670 回答