web-dev-qa-db-ja.com

ピリオドの後に二重スペースを削除する

私は1000人以上の作家で複数の作家のプラットフォームを運営しています。ほとんどのユーザーは自分のコンテンツを外部(Microsoft Word、OpenOfficeなど)で作成してビジュアルエディタに貼り付けます。記事の約20%に、各期間の後に二重のスペースがあります。

ユーザーからのフィードバックによると、これらのプログラムのバージョンによっては、停止後にスペースが1つではなく2つ追加されることがあります。私は最初、これらのユーザーを外部アプリケーション自体でこれに対処する方法のチュートリアルにリンクさせましたが、プラットフォームの成長はこれをとんでもなく大変な仕事にしています。

投稿ページですべてのダブルスペースを削除してシングルスペースに変換する方法はありますか? [公開]をクリックしてフロントエンドではなくバックエンドの投稿ページで(スタイルを修正することで)起こったのであれば理想的です - 私はアイデアに寛容ですが。

個人的な話では、私の作家の少なくとも20%がそれを経験していることを考えると、この機能がWordpressのコア機能の一部ではないことは非常に驚くべきことです。

2
Amanda Duke

私はJavaScriptの解決策を提供することはできません、私は正確にこれが起こっている場所がわからないので。

しかし…wp_insert_post_dataにフックしてPHPでこの問題を解決することができます。

add_filter( 'wp_insert_post_data', 't5_strip_double_spaces', 20 );

function t5_strip_double_spaces( $data )
{
    $data['post_content'] = preg_replace(
        "~( \x{C2}\x{A0}|\x{C2}\x{A0} )~m",
        ' ',
        $data['post_content']
    );
    return $data;
}

GitHubで プラグインとして

5
fuxia

これをfunctions.phpファイルに追加してください

<?php

function my_the_content_filter ($content)
{
    str_replace('.  ', '. ', $content);

    return $content;
}

add_filter('the_content, 'my_the_content_filter');

それうまくいくはずです。それが役に立てば幸い!

参照用コーデックスページ

1
Alex Lane