如何限制类别页面上简短描述的可见部分?

时间:2013-10-25 作者:OAK

如何限制类别页面中“简短描述”的可见部分?

我在主题/woocommerce/内容产品中找到了代码。php,但无论我尝试什么都没用。

<?php
        $len = strlen(strip_tags($post->post_excerpt));
        if($len>get_option(\'shop_dec_len\', \'180\')) {
            $len = "...";
        } else {
            $len = "";
        }
    ?>
    <?php if ($post->post_excerpt && $post->post_excerpt != "") echo \'<div     itemprop="description" class="desc">\' . mb_substr ( strip_tags($post->post_excerpt), 0, get_option(\'shop_dec_len\', \'180\')) . $len . \'</div>\'; ?>

1 个回复
SO网友:helgatheviking

通常,如果设置自定义摘录,它会显示该摘录的全文。在这种情况下,长度受到PHP函数的限制mb_substr 最多180个字符shop_dec_len 选项设置为。这告诉我,您可以修改mb_substr 或者在管理员的某个地方有一个选项,您甚至不需要更改代码。要直接修改它,可以执行以下操作:

<?php if ($post->post_excerpt && $post->post_excerpt != "") echo \'<div     itemprop="description" class="desc">\' . mb_substr ( strip_tags($post->post_excerpt), 0, 100 ) . $len . \'</div>\'; ?>
要以不同的方式修剪摘录,您可以查看[trim_word()][2] 这是有人写的一个简洁的函数,用于修剪而不打断文字:

/**
 * trims text to a space then adds ellipses if desired
 * @param string $input text to trim
 * @param int $length in characters to trim to
 * @param bool $ellipses if ellipses (...) are to be added
 * @param bool $strip_html if html tags are to be stripped
 * @return string 
 */
function trim_text($input, $length, $ellipses = true, $strip_html = true) {
    //strip tags, if desired
    if ($strip_html) {
        $input = strip_tags($input);
    }

    //no need to trim, already shorter than trim length
    if (strlen($input) <= $length) {
        return $input;
    }

    //find last space within length
    $last_space = strrpos(substr($input, 0, $length), \' \');
    $trimmed_text = substr($input, 0, $last_space);

    //add ellipses (...)
    if ($ellipses) {
        $trimmed_text .= \'...\';
    }

    return $trimmed_text;
}
所以这可能看起来像:

<?php if ($post->post_excerpt && $post->post_excerpt != "") echo \'<div     itemprop="description" class="desc">\' . trim_words( $post->post_excerpt, 100, false, true ) . $len . \'</div>\'; ?>

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。