the_contentから空の段落を削除しますか?
-
-
質問を参照してください:[フィルターを使用して
タグの自動ラップを削除しています](http://wordpress.stackexchange.com/questions/7846)
See the question: [I'm using a filter to remove thetags auto wrap](http://wordpress.stackexchange.com/questions/7846)
- 0
- 2011-04-03
- Chris_O
-
`wpautop`が実行する前に、フィルターを実行してみてください.`add_filter( 'the_content'、 'qanda'、7);`..Try running your filter before `wpautop` does it's thing, eg. `add_filter('the_content', 'qanda', 7 );`..
- 1
- 2011-04-03
- t31os
-
@t31os:投票できるように、コメントを回答に移動できますか?@t31os: Can you move your comment to an answer so we can vote on it?
- 0
- 2011-04-06
- Jan Fabry
-
10 回答
- 投票
-
- 2011-04-03
WordPressは、投稿またはページ内のコンテンツの区切りを区切る
<p>
タグと</p>
タグを自動的に挿入します.何らかの理由でこれらを削除する必要がある場合は、次のコードスニペットのいずれかを使用できます.wpautopフィルターを完全に無効にするには、次を使用できます.
remove_filter('the_content', 'wpautop');
それでもこれを機能させたい場合は、次のような後の優先度の値をフィルターに追加してみてください.
add_filter('the_content', 'removeEmptyParagraphs',99999);
WordPress will automatically insert
<p>
and</p>
tags which separate content breaks within a post or page. If, for some reason, you want or need to remove these, you can use either of the following code snippets.To completely disable the wpautop filter, you can use:
remove_filter('the_content', 'wpautop');
If you still want this to function try adding a later priority value to your filter something like:
add_filter('the_content', 'removeEmptyParagraphs',99999);
-
ありがとうございました!私はwordpressが自動的にpタグを挿入することを知っています.ただし、コンテンツのどこかに空の
と自動フォーマットを防ぎます.空のpは必要ありません!
thank you! I know wordpress automatically inserts p tags. However there happen some cases where there are just empty tags somewhere in my content (when i inspect it with some tool)... that happens when doing a lot of removal and editing of posts. I just don't want to have empty paragraphs in my content, that's all. I do need paragraphs, just not empty ones. The 99999 doesn't make a difference. Just doesn't work. the wpautop filter is not what I want. It prevents all's and autoformatting. I just don't want any empty p's!
- 2
- 2011-04-03
- mathiregister
-
投稿を更新したので、意味がわかります.すでにコンテンツをフィルタリングする機能を実行しました.divを挿入し、wordpressがその前後にi updated my post so you see what I mean! i did a function that already filters the content. it inserts divs and it seemes wordpress is inserting before and after it, i just don't get it. any ideas?
- 0
- 2011-04-03
- mathiregister
-
- 2012-01-02
私はあなたと同じ問題を抱えていました.私はちょうど...言いましょう...あまり美しい解決策ではありませんが、それは機能し、今のところそれが私が持っている唯一の解決策です.JavaScriptの行を少し追加しました.jQueryが必要ですが、それがなくても理解できると確信しています.
これは私の小さなJSです:
$('p:empty').remove();
これは私にとってはうまくいきます!
I had the same problem you have. I just did a... let's say... not very beautiful solution, but it works and so far it's the only solution I have. I added a little JavaScript line. It needs jQuery, but I'm sure you can figure it out without.
This is my tiny JS:
$('p:empty').remove();
This works for me!
-
ああ、それは甘い小さな数ではありません!ヒントをありがとう-それは私のために働きます、そして誰かがそれを使う方法を疑問に思った場合には、それをあなたのテーマのカスタムJSファイルに入れるだけです.oh aint that a sweet little number! Thanks for the tip - it works for me and in case anyone else wondered how to use it, just put it in your theme's custom JS file.
- 0
- 2012-09-06
- Sol
-
@D_NCSSを使用して空の段落タグを非表示にすることは `
\n
`に対しては機能しません.@D_N Using CSS to hide empty Paragraph tags only works for `` but doesn't work for `\n
`.- 0
- 2017-04-21
- Michael Ecklund
-
- 2015-09-30
CSSを使用するだけです
p:empty { display: none; }
Simply use CSS
p:empty { display: none; }
-
あなたの答えに説明を追加してくださいPlease add an explanation to your answer
- 0
- 2015-09-30
- Pieter Goosen
-
@PieterGoosenそれはすでに自明です@PieterGoosen it is already self-explanatory
- 4
- 2015-10-01
- at least three characters
-
間隔を空ける目的でそれらを表示することを避けたいだけの場合、これはIE9までうまく機能します.詳細については、http://caniuse.com/#feat=css-sel3およびhttps://developer.mozilla.org/en-US/docs/Web/CSS/%3Aemptyを参照してください.If you just want to avoid displaying them for spacing purposes, this works well down to IE9. http://caniuse.com/#feat=css-sel3 and https://developer.mozilla.org/en-US/docs/Web/CSS/%3Aempty for more.
- 0
- 2016-01-03
- Will
-
CSSセレクターメソッドの素晴らしいオプションで、それが存在することを知りませんでした.ありがとう!nice option with CSS selector method, didn't know it existed. thanks!
- 1
- 2016-04-14
- i_a
-
参考:
タグ内に `&nbsp;`がある場合、これは機能しません.
FYI: If there is ` ` inside thetag this won't work.
- 1
- 2019-06-06
- RynoRn
-
- 2012-05-22
これはすでに「解決済み」とマークされていることは知っていますが、参考までに、投稿にマークアップを追加しなくても、必要なことを正確に実行する関数を次に示します.これをテーマのfunctions.phpに入れるだけです:
add_filter('the_content', 'remove_empty_p', 20, 1); function remove_empty_p($content){ $content = force_balance_tags($content); return preg_replace('#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content); }
これはこの要点からのものです: https://gist.github.com/1668216
I know this is already marked 'solved' but just for reference, here's a function which does exactly what you want without having to add any markup to posts. Just put this in your theme's functions.php:
add_filter('the_content', 'remove_empty_p', 20, 1); function remove_empty_p($content){ $content = force_balance_tags($content); return preg_replace('#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content); }
This is from this gist: https://gist.github.com/1668216
-
force_balance_tags()の使用に関するちょっとした注意... JavaScriptを含むコンテンツでこの関数を使用すると、トリッキーなバグが発生しました(JSはフォームでajaxを使用するときにGravity Formsから取得されていました).特定の状況で `<`文字に遭遇すると、 `force_balance_tags`に既知の問題があります.詳細については、チケット[9270](http://core.trac.wordpress.org/ticket/9270)を参照してください.Just a little note about using force_balance_tags()... I ran into a tricky bug caused by this function when it was used on content that included JavaScript (JS was coming from Gravity Forms when using ajax on a form). There are known problems with `force_balance_tags` when it encounters the `<` character in certain situations. See ticket [9270]( http://core.trac.wordpress.org/ticket/9270) for details.
- 6
- 2013-08-14
- Dave Romsey
-
私はデイブによって強調された同じ問題を抱えていました:スニペットは埋め込まれたYouTubeビデオを削除し、それはアンプページでも検証の問題を引き起こしました.I had the same problem highlighted by Dave: the snippet removed embedded youtube video and that caused validation problems on amp pages also.
- 0
- 2019-06-29
- Marco Panichi
-
- 2011-04-06
その厄介な
wpautop
がフックアップしてマークアップを台無しにする前に、フィルターを実行することができます.add_filter('the_content', 'qanda', 7 );
そうすれば、フックするまでに必要なものをすでに変換しているので、場合によっては役に立ちます.
You could just run your filter before that nasty
wpautop
hooks on and messes with the markup.add_filter('the_content', 'qanda', 7 );
That way, you've already converted what you need to by the time it hooks on, which does help in some cases.
-
- 2017-12-06
私の前の2つの答えと同じアプローチ、 しかし、彼が私のために機能しなかったので、更新された正規表現.
正規表現:
/<p>(?:\s| )*?<\/p>/i
(p-tag内で空白または
のいずれかを任意の数で探している非キャプチャグループ、すべて大文字と小文字を区別しません.add_filter('the_content', function($content) { $content = force_balance_tags($content); return preg_replace('/<p>(?:\s| )*?<\/p>/i', '', $content); }, 10, 1);
Same approach than 2 answers before me, but an updated regex, because his didn't work for me.
the regex:
/<p>(?:\s| )*?<\/p>/i
(non capture group looking for any number of either whitespace or
s inside p-tag, all case insenstive.add_filter('the_content', function($content) { $content = force_balance_tags($content); return preg_replace('/<p>(?:\s| )*?<\/p>/i', '', $content); }, 10, 1);
-
- 2011-04-03
これは奇妙だと思いましたが、実際に
the_content()
を呼び出すと、説明した方法で段落が挿入されます.基本的に入力したとおりのHTMLコードが必要な場合は(編集時の「HTMLの表示」と同じ)、get_the_content()
を使用して、書式設定や段落タグなしでコンテンツを返します.返されるので、必ず次のようなものを使用してください:
echoget_the_content();
関連項目: http://codex.wordpress.org/Function_Reference/get_the_content
I found this weird, but actually calling
the_content()
will insert paragraphs in the manner you describe. If you want the html code, basically like you entered it (the same as "view HTML" when editing), then useget_the_content()
which returns the content without formatting and paragraph tags.Since it returns it, make sure you use something like:
echo get_the_content();
See also: http://codex.wordpress.org/Function_Reference/get_the_content
-
有難う御座います.しかし、私はそれを望んでいません!通常の段落が必要です.まず、セマンティックマークアップであり、次に、想定どおりの方法です.意味をなさない空の段落はありません!これらの段落にスタイルを適用しているという理由だけで、このスタイルでは空の段落も表示され、ページが奇妙に見えます.well, thank you. However I don't want that! I need normal paragraphs. First of it's semantic markup and secondly it's just the way it's supposed to. I just don't to have empty paragraphs that don't make sense! Simply because I have styling applied to those paragraphs also empty paragraphs appear with this styling and my page looks weird.
- 0
- 2011-04-03
- mathiregister
-
add_filterが機能しないのはなぜですか?I actuall wonder why my add_filter thingy does not work?
- 0
- 2011-04-03
- mathiregister
-
ガッチャ.HTMLからビジュアルに切り替えて1、2回戻すことをお勧めします.WYSIWYGエディターが読み込まれると、空の段落タグが削除されると思います.Gotcha. Well one thing I would recommend trying is switching from HTML to visual and back a time or two. I believe when the WYSIWYG editor loads it does remove empty paragraph tags.
- 0
- 2011-04-04
- cwd
-
- 2014-05-07
これにより、文字列からすべての空のhtmlタグが再帰的に削除されます
add_filter('the_content', 'remove_empty_tags_recursive', 20, 1); function remove_empty_tags_recursive ($str, $repto = NULL) { $str = force_balance_tags($str); //** Return if string not given or empty. if (!is_string ($str) || trim ($str) == '') return $str; //** Recursive empty HTML tags. return preg_replace ( //** Pattern written by Junaid Atari. '/<([^<\/>]*)>([\s]*?|(?R))<\/\1>/imsU', //** Replace with nothing if string empty. !is_string ($repto) ? '' : $repto, //** Source string $str );}
パターンは
http://codesnapから取得されます.blogspot.in/2011/04/recursively-remove-empty-html-tags.html This will recursively remove all the empty html tags from the string
add_filter('the_content', 'remove_empty_tags_recursive', 20, 1); function remove_empty_tags_recursive ($str, $repto = NULL) { $str = force_balance_tags($str); //** Return if string not given or empty. if (!is_string ($str) || trim ($str) == '') return $str; //** Recursive empty HTML tags. return preg_replace ( //** Pattern written by Junaid Atari. '/<([^<\/>]*)>([\s]*?|(?R))<\/\1>/imsU', //** Replace with nothing if string empty. !is_string ($repto) ? '' : $repto, //** Source string $str );}
Pattern is taken from http://codesnap.blogspot.in/2011/04/recursively-remove-empty-html-tags.html
-
- 2017-05-15
コンテンツに空白が含まれる
<p>
タグがある場合は、 投稿またはページに移動して、視覚的なスタイルではなく編集します.そこに
がいくつかあります. 削除すると、空の<p>
タグが消えます.If you have
<p>
tags with whitespace in the content, go to your post or page an edit it not in visual style.you would be find some
in there.. Delete it and the empty<p>
tags will disappear. -
- 2018-09-19
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_title(); ?> <?php echo $post->post_content; ?> <?php endwhile; endif; ?>
In order to have only html content without
tags we can use the following loop to out put only the html without formatting of the post or page<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_title(); ?> <?php echo $post->post_content; ?> <?php endwhile; endif; ?>
やあみんな、 WordPressの投稿に空の段落が作成されないようにしたいだけです.これは、コンテンツを手動で配置しようとすると非常に頻繁に発生します.
なぜこれが有効にならないのかわかりませんか?
編集/更新:
問題は次のようです:
この機能を自分で実行して、投稿やページの一種のショートコードパターンをフィルタリングしました.私のバックエンドでは、投稿は段落や不要な間隔なしで完全に行われていますが、結果は次のようになります.
この空のpがどこから来たのか考えてみませんか?