Woocommerce 简短描述摘录长度

Posted

技术标签:

【中文标题】Woocommerce 简短描述摘录长度【英文标题】:Woocommerce Short Description Excerpt Length 【发布时间】:2016-06-12 03:52:53 【问题描述】:

我正在尝试更改简短说明摘录的长度。

我发现以前的帖子说我应该改变

<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>

<?php $excerpt = apply_filters( 'woocommerce_short_description', $post->post_excerpt );
    echo substr($length,0, 10);
?>

但是,这样做时,我的摘录就消失了。

【问题讨论】:

仔细查看存储摘录的变量名称以及substr 的第一个参数。看出一些不同了吗? :P 【参考方案1】:

恐怕你正在编辑插件...如果是这样,你做错了..

创建一个函数,然后挂钩到该过滤器...类似这样...

add_filter('woocommerce_short_description', 'reigel_woocommerce_short_description', 10, 1);
function reigel_woocommerce_short_description($post_excerpt)
    if (!is_product()) 
        $post_excerpt = substr($post_excerpt, 0, 10);
    
    return $post_excerpt;

将此粘贴​​到主题的functions.php 文件中。

【讨论】:

post_excerpt); ?> 位于我的主题中的“content-product.php”中。恐怕这个函数会产生同样的问题,我的摘录消失了。 没错,内容并没有改变,但是这个函数不起作用,还保留着原来的 post_excerpt ); ?>. 如果你删除那行代码,&lt;?php echo apply_filters( 'woocommerce_short_description', $post-&gt;post_excerpt ); ?&gt;,摘录还会显示吗? 啊,我的代码打错了.. 尝试复制我更新的代码...再次不编辑product.php 太棒了!那行得通!谢谢!碰巧知道我如何将该功能限制为存档页面而不是产品页面?【参考方案2】:

而不是直接在插件中编辑文件(这是一个非常糟糕的主意,因为一旦更新插件,您的所有更改都将丢失!)

您可以使用此代码限制字数 -

add_filter('woocommerce_short_description', 'limit_woocommerce_short_description', 10, 1);
    function limit_woocommerce_short_description($post_excerpt)
        if (!is_product()) 
            $pieces = explode(" ", $post_excerpt);
            $post_excerpt = implode(" ", array_splice($pieces, 0, 20));

        
        return $post_excerpt;
    

explode 将原始字符串分解为单词数组,array_splice 让您获得这些单词的特定范围,然后 implode 将这些范围重新组合成单​​个字符串。

使用此代码更改商店页面而非产品详细页面上的限制

【讨论】:

有什么办法可以在摘录的末尾加上...(三个逗号)来表示它没有被完全引用,而是被截断了?谢谢。

以上是关于Woocommerce 简短描述摘录长度的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 3.0+ 中为简短描述添加属性

WooCommerce 按用户角色删除购物车

在主页和类别页面中限制 woocommerce 产品简短描述

如何删除 Woocommerce 商店页面上的简短描述

Woocommerce产品简短描述中同一类别的产品下拉列表

在帖子页面上预填充 Woocommerce 简短描述