web-dev-qa-db-ja.com

CPT投稿タイトルパートナー:個別に削除するのではなく、「@」(またはすべての特殊文字)をダッシュ​​「 - 」に置き換えます

私はカスタム投稿タイプ "Email"を持っています。ここで、投稿タイトルは常に電子メールアドレスになります。例:[email protected]

私が抱えている問題は、 "@"がパーマリンクから削除されていることです。../ exampledomain-com

../ example-domain-comとして保存します。

"@"を " - "に置き換える

私はここから を試しましたが 、もっと知識のある人がすぐにわかるように、それはパーマリンクには当てはまりません:

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

フィルタが/ 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
2
Michael