如何在woocommerce中限制相关产品的标题长度

How to limit the length of title for related products in woocommerce

提问人:Mohammad Suhail 提问时间:8/18/2023 最后编辑:LoicTheAztecMohammad Suhail 更新时间:8/19/2023 访问量:104

问:

我正在使用以下代码自动缩短静态主页主商店、类别和标签页面上的 WooCommerce 产品标题。我也想为相关产品这样做。我应该在这里为相关产品添加什么条件标签

此代码自动将静态主页主商店、类别和标签页面上的 WooCommerce 产品标题缩短为一定数量的字符

function short_woocommerce_product_titles_chars( $title, $id ) {
    if ( ( is_front_page() || is_shop() || is_product_tag() || is_product_category() ) && get_post_type( $id ) === 'product' ) {
        // Kicks in if the product title is longer than 60 characters 
        if ( strlen( $title ) > 60) {
            // Shortens it to 60 characters and adds ellipsis at the end
            return substr( $title, 0, 60 ) . '...';
        }
    }

    return $title;
}
add_filter( 'the_title', 'short_woocommerce_product_titles_chars', 10, 2 );
PHP WordPress 循环 WooCommerce 产品

评论


答:

3赞 LoicTheAztec 8/19/2023 #1

下面也会将您当前的代码扩展到相关产品:

function shorten_woocommerce_loop_product_titles( $title, $id ) {
    global $woocommerce_loop;

    if ( ( is_front_page() || is_shop() || is_product_tag() || is_product_category() || ( isset($woocommerce_loop['name'])
    && $woocommerce_loop['name'] === 'related' ) ) && get_post_type( $id ) === 'product' ) {
        $length_threshold = 60; // Here define the desired number of characters max to be displayed

        // If the product title is longer than xx characters 
        if ( strlen( $title ) > $length_threshold ) {
            // Shortens it to xx characters and adds ellipsis at the end
            return substr( $title, 0, $length_threshold ) . '...';
        }
    }
    return $title;
}
add_filter( 'the_title', 'shorten_woocommerce_loop_product_titles', 10, 2 );

代码进入子主题的 functions.php 文件(或插件)。经过测试并有效。

评论

0赞 Mohammad Suhail 8/19/2023
我可以根据第一行之后的行设置标题长度吗?
1赞 LoicTheAztec 8/19/2023
@MohammadSuhail 请好好想想......我怎么能猜出你的商店中产品标题的长度,因为它取决于CSS设置(font-width,font-familly...),按行显示的产品数量(显示标题的块的宽度)等等......您需要设置最佳字符数,进行多次尝试并查看结果。此外,这可能因浏览器而异(也因平台而异)。这就是我们现在使用响应式设计的原因。