我的基本头衔是
第一部分:第二部分
我试图用冒号作为我在正则表达式中找到的东西来结束类似的事情:
<span class="one-class">Part One:</span><br><span class="two-class">Part Two</span>
这是
entry-header.php
我想继续使用html:
if ( is_singular() ) {
the_title( \'<h1 class="entry-title">\', \'</h1>\' );
}
只要标题中有冒号,以下内容就有效。如果没有冒号,则不会添加任何html。
if ( is_singular() ) {
$string = get_the_title();
$pattern = \'~(.+): (.+)~i\';
$replacement = \'<h1 class="entry-title"><span class="title-cite-pali">$1:</span><br><span class="title-english">$2</span></h1>\';
echo preg_replace($pattern, $replacement, $string);
}
但我想我真正想要的是
but it doesn\'t work。输出就像我添加的代码不在那里一样。
if ( is_singular() ) {
$string = the_title( \'<h1 class="entry-title test">\', \'</h1>\' );
$pattern = \'~(.+): (.+)~i\';
$replacement = \'<span class="title-cite-pali">$1:</span><br><span class="title-english">$2</span>\';
echo preg_replace($pattern, $replacement, $string);
}
我想如果我能让上面的代码正常工作,那就更好了,因为如果没有冒号,至少
h1
将添加标签。
SO网友:Tom J Nowell
你不需要正则表达式。
首先,获取标题作为字符串变量:
$title = get_the_title();
然后,找到第一个冒号的位置:
$colon = strpos( $title, \':\' );
如果没有冒号,请处理:
if ( $colon === FALSE ) {
// there was no colon, handle that!
echo \'<h2>\' . esc_html( $title ) . \'</h2>\';
} else {
// the rest of the code
}
那么
else
? 好吧,让我们把它一分为二:
$first_part = substr( $title, 0, $colon );
$second_part = substr( $title, $colon + 1, strlen( $title ) );
现在我们可以以不同的方式输出它们:
echo \'<span>\' . $first_part . \'</span>\';
echo \'<span>\' . $second_part . \'</span>\';