web-dev-qa-db-ja.com

生の出力(wpautopを防ぐ)

WordPress 3.5を使用する。

私は<form>をWPベースのサイトのPageに入れようとしています。残念ながら、WPは、フォームコントロールの横の不適切な場所に<br>タグと<p>タグを挿入することによって、フォームの書式設定を "便利に"厄介にしています。

私はwpautopを世界的に無効にしたくありません、それがまだブログ投稿に役立つので(特にこれが複数著者のサイトであるので)。ページ全体で無効にしたくない場合もあります。私はこの1ページのこの1つの特定のセクションだけでそれを無効にする何らかの方法が欲しいです。

私はWP changelogを読んだところ、おそらくショートコードの出力ではwpautopが実行されなくなったため、次のショートコードを作成してみました。

function raw_shortcode( $atts, $content = null ) {
   return $content;
}
add_shortcode('raw', 'raw_shortcode');

残念ながらこれはうまくいかないようです - これでフォームを囲むとまだ望ましくない改行や段落が追加されることになります。

私はいくつかの例を見て 標準的なフィルタ への変更を提案しましたが、私はまた 他のものを読みましたこれを示唆しているページ は悪い考えです。

2
Miral

パーティーに遅刻しますが、このプラグイン wpautop をトグルすると、WPにあなたのコンテンツをページ上に表示させるかどうかを選択的に無効にすることができます。または投稿して、WP 4.9(この回答の現在のバージョン)で動作します。

1
Mac

あなたのフォームを出力するようにあなたのショートコード関数を修正してみてください - 私はあなたのコードの$ output変数にあなたのフォームhtmlを挿入することを意味します:

function raw_shortcode( $atts ) {
    $output = '<form><label for="id">Label</label><input type="text" name="name" id="id"/></form>';
    return $output;
}
add_shortcode('form', 'raw_shortcode');

そして単にあなたのコンテンツに[form]を追加するだけではありません。

0
david.binda