WordPress投稿の自動フォーマットを無効化しますか?
初期設定では、WordPressは引用符をファンシークォートに置き換え、テキストをきれいに整形します。そのため、ユーザーはコードや生のテキスト、CSS/Javascriptのコード例を表示することができません。
今回は、WordPress投稿の自動フォーマットを無効化する方法をご紹介します。
なぜWordPressの投稿フォーマットを無効化するのか?
WordPressには、テキストをサニタイズする機能がビルトインされています。この機能は引用符をファンシークォートに置き換え、HTML、CSS、JavaScriptを表示するために必要なその他のタグを削除します。
WordPressでコードを簡単に表示する方法は複数あり、初期設定を省略することができます。WordPressでコードを表示する方法の投稿で確認できます。
しかし、上級ユーザーの中には、自分のサイトでWordPressの自動書式設定を完全に無効化したい人もいるだろう。これにより、WordPressのフォーマットチェックを簡単にスキップし、必要な場所に生のテキストをサイトに表示することができます。
そこで、WordPressの自動書式設定を簡単に無効化する方法をご紹介しましょう。2つの方法を紹介するので、あなたのニーズに合わせて最適な方法を選んでください。
方法1.WordPressの自動フォーマットを手動で無効化する。
この方法では、WordPressサイトにカスタムコードを追加する必要があります。WordPressでカスタムコードをコピー&ペーストする方法をご覧ください。
まず、テーマのfunctions.phpファイルまたはコード・スニペット・プラグインに以下のコードを貼り付けます。
function my_formatter($content) {
$new_content = '';
$pattern_full = '{([raw].*?[/raw])}is';
$pattern_contents = '{[raw](.*?)[/raw]}is';
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= wptexturize(wpautop($piece));
}
}
return $new_content;
}
remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');
add_filter('the_content', 'my_formatter', 99);
WPCodeプラグインを使用してこのコードを追加することをお勧めします。テーマファイルを編集せずにWordPressにカスタムコードを追加する最も安全で簡単な方法です。
開始するには、無料のWPCodeプラグインをインストールし、有効化する必要があります。WordPressプラグインのインストール方法については、こちらをご覧ください。
プラグインを有効化したら、WordPressダッシュボードからCode Snippets ” Add Snippetに移動します。次に、’カスタムコードを追加(新規スニペット)’オプションにマウスオーバーし、’スニペットを使用’ボタンをクリックします。
次に、スニペットのタイトルを追加することができます。これは、何のためのコードかを覚えておくのに役立つものであれば何でもかまいません。
次に、上記のコードを「コードプレビュー」ボックスに貼り付け、ドロップダウンメニューからコードタイプとして「PHPスニペット」を選択します。
最後に、スイッチを「非有効化」から「有効化」に切り替え、ページ上部の「スニペットを保存」ボタンをクリックする。
上記のコードは、生のショートコード内でテキストが折り返されている場合、設定オプションをスキップするようにWordPressに指示します。
WordPressのフォーマットをスキップするには、WordPressの投稿フォーマットにHTMLブロックを追加する必要があります。投稿エディター内で、フォーマットされていないテキストやコードを生のショートコード内に追加することができます。
[raw]Unformatted code[/raw]
この方法の欠点は、ブロックエディターとの相性があまりよくないことだ。HTMLブロックの中でも、予期せぬ動作をする可能性があります。
方法2.プラグインを使用してWordPressの自動書式設定を無効化する。
この方法は簡単ですが、古いClassic Editorプラグインを使用する必要があります。この方法の主な欠点は、将来ブロックエディターを使い始めることになった場合、混乱が生じることです。
まず、Classic Editorプラグインをインストールして有効化する必要があります。詳しくは、WordPressでブロックエディターを無効化する方法をご覧ください。
その後、Raw HTMLプラグインをインストールして有効化する必要があります。詳しくはWordPressプラグインのインストール方法をご覧下さい。
その後、新規投稿を作成するか、既存の投稿を編集することができます。投稿の編集画面で、テキストモードに切り替えて、整形されていないテキストを生のショートコードの中に追加する必要があります。
[raw]Unformatted code[/raw]
変更内容を公開または保存してプレビューし、実際に書式なしテキストを確認することができます。
WordPress投稿の自動フォーマットを無効化する方法について、この投稿がお役に立てれば幸いです。WordPressでテキストをハイライトする方法や、WordPressでおすすめのjQueryプラグインもぜひご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Phil LaNasa
Excellent! I’ve tried plugins, but they make they work globally – all pages are affected. This is a super quick fix.
Emanuele
Nice piece of code. Made my day. Thanks for sharing.
Myrddin
Hello,
Thanks for this tip. Kind of nice to be able to have raw scripts/html for select complex forms I am using, without having to pay attention on the remaining site.
Michael
Blair
Im seeing this code everywhere , and I’m not so sure it’s a valid solution as it messes with a lot of other shortcodes ( if you theme is using theme ) , and it seems to add back formatting to areas in which did not have auto formatting in the first place ie : with get_the_excerpt() or something like this.
Is there not an easier way to strip away a selected area of content to be not formatted this way?
Editorial Staff
Umm, we simply use the Syntax Highlighter to display codes. Rest of formatting is ok. Unfortunately there is no real easy way.
管理者
Karan
This still does not take out the tags from posts/pages.
Thanks.
FAQPAL
Excellent, this is definitely one frustrating part of Wordpress.