这更像是一个PHP问题,而不是一个WordPress问题。
如果要删除punctuation marks 喜欢(.,-;:
) 您可以尝试此递归版本:
$s = get_post_meta( $post->ID, \'one_line_summary\', TRUE );
if( function_exists( \'remove_punctuation_marks\' ) )
$s = remove_punctuation_marks( $s );
使用
/**
* Remove punctuation marks (.,-;:) if they\'re the last characters in the string
* WPSE: 119519
*
* @param string $s
* @return string $s
*/
function remove_punctuation_marks( $s )
{
$remove = array( \'.\', \',\', \'-\', \';\', \':\' ); // Edit this to your needs
if( in_array( mb_substr( $s, -1 ), $remove, TRUE ) )
$s = remove_punctuation_marks( mb_substr( $s, 0, -1 ) );
return $s;
}
您可以在其中定义
$remove
满足您的需要和
mb_substr()
是的多字节版本
substr()
.
示例:
以下测试:
echo remove_punctuation_marks( \'...Hello world...:,;\' );
给出输出:
...Hello world
更新:最好使用
rtrim()
正如@toscho所指出的;-)
那么在您的情况下:
$s = get_post_meta( $post->ID, \'one_line_summary\', TRUE );
$s = rtrim( $s, \'.,;:\' );
可以添加到列表中的位置(
.,;:
) 要删除的标点符号。