WordPress での AA 表示

WordPress の投稿記事内で AA を表示する方法です。
以下の設定を行ったサンプル

フォントの設定

まず WordPress に限らず必要なフォントの設定を行います。 ただ、下記の .entry-content の部分は、使用している WordPress のテーマによってそれぞれ違います。 そのため、記事部分にどのようなクラス名が使用されているかを調べて記述してください。

.entry-content {
    font-family: 'Saitamaar', 'MS Pゴシック', 'MS PGothic', sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: normal;
    letter-spacing: 0;
    line-height: 18px;
    overflow: auto;
    white-space: nowrap;
}

上記コードは ajaira というテーマを使用する場合は、そのままコピーして使えます。

余計な変換を無効にする

WordPress では記号だったり顔文字だったり余計な変換がデフォルトで設定されており、、WordPress の初期設定のままでは必ず AA が崩れます。 そのため、以下のようなコードを追加して変換を無効化します。

お使いのテーマの functions.php ファイルに以下を追記します。 ※ <?php で始まっている部分のすぐ下に追記すると大丈夫なはずです。

/* 顔文字変換を無効化 */
remove_filter('the_content', 'convert_smilies', 20);
remove_filter('the_excerpt', 'convert_smilies', 20);
remove_filter('comment_text', 'convert_smilies', 20);

/* 自動変換を無効化 */
remove_filter('the_title', 'wptexturize');
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');

/* 2 連続の改行の変換を無効化 */
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');

改行タグの変換処理を追加する

改行を改行タグに変換する処理を追加します。 以下のコードはbrBrbrというプラグインをコピーして一部変更したものです。 brBrbr プラグインをそのまま使用する場合 PHP7 でエラーとなるため以下のように修正しています。また、最後に段落タグを追加する部分も不要なので削除しています。
※ 記事の投稿内容に対して、改行タグを自分で設定している場合は以下の追加は不要です。

add_filter('the_content','brBrbr');

function brBrbr($brbr) {
    $brbr = str_replace(array("\r\n", "\r"), "\n", $brbr); // cross-platform newlines
    $brbr = str_replace("\n", "<br />\n", $brbr); // cross-platform newlines
    $brbr = preg_replace('!(</?(?:table|img|thead|tfoot|caption|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|textarea|input|blockquote|address|p|math|script|h[1-6])[^>]*>)\s*<br />!', "$1", $brbr);
    $brbr = preg_replace('|<blockquote([^>]*)>|i', "</p>\n<blockquote$1><p>", $brbr);
    $brbr = str_replace('</blockquote>', "</p></blockquote>\n<p>", $brbr);
    $brbr = preg_replace_callback('/(<pre.*?>)(.*?)<\/pre>/is', "clr_br", $brbr);
    $brbr = preg_replace_callback('/(<script.*?>)(.*?)<\/script>/is', "clr_br", $brbr);
    $brbr = preg_replace_callback('/(<form.*?>)(.*?)<\/form>/is', "clr_br", $brbr);
    return $brbr;
}

function clr_br($str){
    $str = $str[0];
    $str  = str_replace("<br />","",$str);
    $str  = str_replace('\"','"',$str);
    return $str;
}

以上の設定で最低限 AA を表示できるようになるはずです。

作成日時:2017-01-29 16:57:27    更新日時:2017-02-04 21:03:57