Wordpress - the_title() 限制标准小部件中的字符

Wordpress - the_title() limit character in standard widget

我将标准的最近 Post 小部件复制到 function.php,我注销它并注册我的新 class。在小部件中,我看到这个函数负责在 A 标签中显示最近帖子的标题:

<?php while ( $r->have_posts() ) : $r->the_post(); ?>

        <li>
            <a href="<?php the_permalink(); ?>">
                <?php  if ( get_the_title() ) {
                    $t = the_title();
                    $t = substr($t, 0, 40); /// this doesn't work

                }else{
                    the_ID();
                }
                ?>
            </a>
...
...

但是这个 substr 不起作用 - 标题总是显示全部。我做错了什么?

你也可以使用mb_substr(), It works almost the same way as substr但不同的是你可以添加一个新的参数来指定编码类型,无论是UTF-8还是其他编码。

试试这个:

$t =  mb_substr($t, 0, 40, 'UTF-8');

后期编辑:更改

 $t = the_title();

$t = get_the_title();

您正在使用 the_title 而不是 get_the_title 将其赋予特定变量。并确保在所有这些之后回显 $t。

这个应该有用

echo mb_strimwidth(get_the_title(), 0, 40, '...');