CPT帖子标题固定链接:将“@”(或所有特殊字符)替换为破折号“-”,而不是只删除

时间:2018-09-19 作者:codeview

我有自定义的帖子类型“Email”,其中帖子标题总是一个电子邮件地址,即:[email protected]

我遇到的问题是永久链接中的“@”正在删除:../exampledomain-com

我希望它另存为:../example-domain-com

将“@”替换为“-”

我尝试了以下方法from here, 但知识渊博的人很快就会发现,这不适用于permalink:

function at_to_dash($title) {
    return str_replace(\'@\', \'-\', $title);
}
add_filter(\'sanitize_title\', \'at_to_dash\');

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

只需确保您的过滤器在Wordpress本身应用的过滤器之前运行-添加优先级9:

add_filter( \'sanitize_title\', function( $title ) {

    if ( FALSE !== strpos( $title, \'@\' ) ) {
        $title = str_replace( \'@\', \'-\', $title );
    }

    return $title;

}, 9 );
用法:

echo sanitize_title( \'[email protected]\' );
输出:

mytitle-example-org

结束

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?