我有一个带有标题的wordpress网站,如果标题有超过50个字符,我需要在标题的末尾添加省略号(...)并将标题停止在50个字符.下面是我正在编写的PHP,但它似乎无法正常工作,寻求PHP大师教我正确的方法.任何帮助将不胜感激.
<?php if (strlen("the_title()") > 50) { ?>
<?php the_title(); ?>
<?php } if (strlen("the_title()") < 50) { ?>
<?php echo substr(get_the_title(), 0, 50); ?>...
<?php } ?>
Run Code Online (Sandbox Code Playgroud) 我试图在字符串过滤器中使用此方法:
public function truncate($string, $chars = 50, $terminator = ' …');
Run Code Online (Sandbox Code Playgroud)
我期待这个
$in = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ1234567890";
$out = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV …";
Run Code Online (Sandbox Code Playgroud)
还有这个
$in = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ??????????????????????????????";
$out = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ?????????????????? …";
Run Code Online (Sandbox Code Playgroud)
这是$chars减去$terminator字符串的字符.
此外,滤波器应该在$chars极限以下的第一个字边界切割,例如
$in = "Answer to the Ultimate Question of Life, the Universe, and Everything.";
$out = "Answer to the Ultimate Question of Life, the …";
Run Code Online (Sandbox Code Playgroud)
我很确定这应该适用于这些步骤
但是,我现在尝试了各种组合str*和mb_*功能,但都产生了错误的结果.这不是那么困难,所以我显然缺少一些东西.有人会为此分享一个有效的实现,或者指向一个资源,我终于可以理解如何做到这一点.
谢谢
PS是的,我之前已经检查过https://stackoverflow.com/search?q=truncate+string+php :)