【问题标题】:WooCommerce: Change related products heading and remove/change <h2>WooCommerce:更改相关产品标题并删除/更改 <h2>
【发布时间】:2020-04-02 09:51:23
【问题描述】:

出于 SEO 原因,我想更改相关产品的标题文本并删除 &lt;h2&gt;

我在这里找到了一些更改标题文本的答案:Rename Related Products title in Woocommerce 3 但是那里的代码和答案不起作用(现在?)。

还有一个问题。标题使用了我也想更改的&lt;h2&gt; 标签。

我在related.php模板中找到了如下代码:

<?php
$heading = apply_filters( 'woocommerce_product_related_products_heading', __( 'Related products', 'woocommerce' ) );

if ( $heading ) : ?>
    <h2><?php echo esc_html( $heading ); ?></h2>
<?php endif; ?>

有什么方法可以在不更改模板文件的情况下更改$heading 的完整输出?

【问题讨论】:

  • 针对单个产品,还是“相关产品”部分本身?
  • 对于产品页面的“相关产品”部分

标签: php wordpress woocommerce woocommerce-theming


【解决方案1】:

首先您可以通过添加过滤器来删除现有的h2

add_filter('woocommerce_product_related_products_heading', function(){return false;});

然后你可以重写woocommerce_product_loop_start函数,它是可插拔的。

function woocommerce_product_loop_start( $echo = true ) {
    ob_start();

    wc_set_loop_prop( 'loop', 0 );

    wc_get_template( 'loop/loop-start.php' );

    $loop_start = apply_filters( 'woocommerce_product_loop_start', ob_get_clean() );

    if ( $echo ) {
        // check to see if it's the related loop
        if (wc_get_loop_prop('name') == 'related'){
            // Change the heading to whatever you want
            echo "<h3>Related Products</h3>";
        }
        echo $loop_start; // WPCS: XSS ok.
    } else {
        return $loop_start;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多