[WordPress] brタグが正常に動作していない場合、

Last Updated:2016年02月07日| | 4のコメント

WordPressで改行タグ(br)や段落区切りタグ(p)が正常に動作しない問題を訴えるユーザーがたまに接するます。 タグが正常に動作していない場合は、次の事項をチェックしてください。

TinyMCE Advancedプラグインを無効に、または使用

TinyMCE Advancedプラグインを使用している場合は、このプラグインを無効にするようにします。 (TinyMCE Advancedプラグインが原因でこのような問題が発生する可能性があります。)、または、これらのプラグインをインストールしていなかった場合、このプラグインをインストールして、この問題が解決するか確認してください。

正しくないXHTMLの自動修正を無効に

管理者ページの左側のサイドバーで 設定 >を書くをクリックして「WordPressは正しくない XHTMLの自動修正します。」のチェックを解除します。

記事本文のタグを削除する関数が使用されていないことを確認し

テーマ関数ファイルで remove_filter('the_content','wpautop');が使用されているかどうかを確認します。 そしてタグを削除する関数が使用されていないことを確認してください。 (例えば、 the_contentstrip_tagsが適用されると文でタグが削除されます。)

フィルタの使用

次のフィルタを使用してみます。 おそらくこのフィルタを使用すると、ほとんどの問題が解決されないだろうかと思われます。 (よくないと、TinyMCE Advancedプラグインを有効または無効にした後、それぞれに適用してください。)

function clear_br($content){
return str_replace("<br />","<br clear='none'/>", $content);
}
add_filter('the_content', 'clear_br');

別の方法として、以下のフィルタを使用してみます。

add_filter( 'tiny_mce_before_init', 'my_switch_tinymce_p_br' );

function my_switch_tinymce_p_br( $settings ) {
$settings['forced_root_block'] = false;
return $settings;
}

このフィルタを使用すると、 入力しますを打てば タグが入力され、 Shiftキー+ Enterキーを入力すると、新しい段落が作成されます。

ショートコードを使用

すべての方法をすべて動員してもうまくいかないと、ショートコードを作成 br タグを追加する方法を考えてみることができますが、この方法は面倒だからあまり望ましくないと思われる。

function bio_shortcode($atts, $content = null) {
$content = wpautop(trim($content));
return '<div class="bio">' . $content . '</div>';
}
add_shortcode('bio', 'bio_shortcode');

[bio] ショートコードを好きなところに追加すると、改行タグが追加されています。 wpautop 関数の詳細については、 WordPress Codexページを参考にしてみてください。

メモ:

 


4のコメント

コメント

  1. エンターを押すbrタグが入力されるようにしたいのです、第二のフィルタをテーマ関数ファイルにやたら追加したが、大変なところ切った。テーマ関数ファイルの中に入れるだけでいいですか? 別に宣言をする必要はない

    応答
      • 上記のフィルタを動作させることに成功したが、データを変更するたびに、エラー画面が浮遊ね..変更がなったりする戻るボタンを押す必要があります。警告: Cannot modify header information - headers already sent by (output started at /WEB/nalchifarm/html/wp-content/themes/ultra/functions.php:1) in/WEB/nalchifarm/html/wp-admin/post.php オンライン 197とエラーが出ますね。

      • こんにちは?

        ひょっとして、上記のフィルタをテストして見たんですが、エラーが発生せず、正常に動作しますね。
        テスト環境は、 Cafe24 ホスティングサーバーです。

        上記のコードをそのままコピーすればいいのですが、「中級」の文章ではコピー防止がされており、おそらく入力しながらどの部分でエラーが発生しなかったかと思います。
        http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php 文を参考にしてください。
        (関数の中間や関数の前、あるいは後ろ) 無駄な 不要なホワイトスペースや特殊文字が含まれていないか…タイプミスがないことを確認してください。

        参考までに、投稿の不正コピーの問題のため、すべての投稿にコピー禁止コードを追加しましたが、ユーザーの不便のため、現在「中級」​​の投稿のみコピー禁止コードが適用されています。 もう少し見て、この部分のコピー禁止コードも削除するかどうかを決定します。

        だから、手間下さい。