我知道WordPress可以过滤短代码,比如the_content
但是否可以过滤get_the_content
?
我有一个可以使用的函数substr
和strpos
我知道这很管用the_title
. 我也试过同样的方法get_the_title
但我无法让它工作。
是否可以进行同样的操作get_the_title
?
迄今为止我掌握的代码:
function gg_short_title($title) {
// This can return false, so check there is something
$linkt=array();
$linkt[] = substr($title, 0, strpos($title, \' —\'));
$linkt[] = substr($title, 0, strpos($title, \' –\'));
$linkt[] = substr($title, 0, strpos($title, \' |\'));
$linkt[] = substr($title, 0, strpos($title, \' -\'));
$short_title = implode(\'\', $linkt);
if ($short_title) {
return $short_title;
}
// Else just return the normal title
return $title;
}
add_filter(\'get_the_title\', \'gg_short_title\', 10, 1);
谢谢。
SO网友:cowgill
除了莫拉莱达的答案之外,这里还有一个匹配和输出标题的较短方法。
Note - 它将在找到的第一个匹配项上拆分字符串,因此如果有多个“|”或“em-dash”字符,则可能会出现问题(即使对于原始代码也是如此)。
function gg_short_title( $title ) {
if ( 1 === preg_match( \'(—|–|||-|\\|)\', $title, $matches ) ) {
$short_title = explode( $matches[0], $title, 2 );
$title = trim( $short_title[0] );
}
return $title;
}
add_filter( \'the_title\', \'gg_short_title\', 10, 1 );