向第一个“TITLE”=>GET_TITLE($POST->ID)添加文本,并缩短

时间:2020-12-17 作者:sa eu

我使用以下代码显示标题:

 $imageAttr = array(
                "class"=>"alignnone size-medium",
                "alt"=>get_the_title($post->ID),
                **"title"=>get_the_title($post->ID),**
        );
现在,我想添加一个文本标题,例如;“您好”;并从标题末尾缩短几个单词

也就是说,如果这是我的标题:

"E;“你好吗?”;

我希望它是这样的:“quot;嗨,你好;

1 个回复
SO网友:honk31

有很多方法可以做到这一点,但坦率地说,这不是wordpress的问题,而是php的问题。这是您的代码,可以按您的要求执行

$imageAttr = [
    "class" => "alignnone size-medium",
    "alt" => get_the_title(get_the_ID()),
    "title" => __(\'hi\', \'theme-textdomain\') . \' \' .  wp_trim_words(get_the_title(get_the_ID()), 2),
];
$变量=[]只是数组()的简写形式

get\\u该ID()与$post相同->;ID,但不使用全局变量$post。它是在该函数中调用的,但您不必首先定义它。因为在没有事先通知的情况下拨打$postglobal $post; 可能会在其他地方引起问题。只需使用内置的wordpress函数,就可以了。reference

__(\'hi\', \'theme-textdomain\') 是一个函数,可以让您转换主题。”“hi”只是从该函数返回的字符串,“theme textdomain”是集合的域,字符串保存在中。this 关于如何正确地做这件事,这篇相当老的文章仍然是一本很好的读物。

我添加的最后一点是. \' \' . 这是自定义字符串和文章标题之间的空格,. 只是多个字符串的php粘合剂。您可以在前面的函数中将该空格添加到自定义字符串中,但在翻译部分,这很容易被忘记,所以我单独添加了它。

另外,还有一种方法:

"title" => sprintf(\'%1$d %2$d\', __(\'hi\', \'theme-textdomain\'), wp_trim_words(get_the_title(get_the_ID()), 2))
它通过php sprintf函数组合这两个字符串。相同相同。。但不同。。

"title" => sprintf(__(\'hi %d\', \'theme-textdomain\'), wp_trim_words(get_the_title(get_the_ID()), 2))
还有一个。sprintf()文档here