标题中可以使用多个空格吗?

时间:2017-01-12 作者:user2739158

我想在标题中使用三个空格作为分隔符。我删除所有过滤器,包括:

remove_all_filters(\'the_title\');
并添加我自己的过滤器:

add_filter(\'the_title\', \'my_title_filter\');
例如,“我的过滤器”将3个空格替换为3个点,如:

$title = preg_replace(\'#(\\s\\s\\s)#\', \'...\', $title);
但是,什么都不管用。

如何避免替换多个空格?

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

正如你在the Codex, 过滤器实际上有2个参数,需要说明:

add_filter( \'the_title\', function ( $title, $id = null ) {
    return preg_replace(\'#(\\s{3})#\', \'…\', $title);
}, 10, 2 );
你也可以直接使用一个占位符来替换,这样可能会更容易。

如果上述操作不起作用,您可能希望在调用它之前进行尝试:

$filters = $GLOBALS[\'wp_filter\'][\'the_title\'];

foreach ( $filters as $priority => $filter ) {
    remove_all_filters(\'the_title\', $priority);
}

add_filter( \'the_title\', function ( $title, $id = null ) {
    return preg_replace(\'#(\\s{3})#\', \'…\', $title);
}, 10, 2 );

the_title();
如果^以上操作有效,则您在正确移除过滤器时遇到问题。你可能想var_dump($GLOBALS[\'wp_filter\'][\'the_title\'];) 高于要求the_title() 然后看看还剩下什么,关心一下。

相关推荐

正在尝试将Get_the_Title挂钩添加到该行

您好,创建联系人表单。正在尝试将get\\u the\\u title()添加到此代码行中:<?php echo \'<textarea style=\"margin-left: 15px; width: 246px;\" rows=\"3\" cols=\"28\" placeholder=\"I am interested in:\" name=\"cf-message\">\' . ( isset( $_POST[\"cf-message\"] ) ? esc_attr( $_PO