web-dev-qa-db-ja.com

浮遊<p>要素

私は基本的にショートコードを介してHTMLを挿入する列のためのワードプレスのショートコードをコーディングしました。問題は、wpautopがコードを無効にする浮遊p要素を追加することです。

テストするには、これを自分のfunctions.phpに入れてください。

function static_col_container($atts, $content) {
    extract(shortcode_atts(array(
        'foo' => 'bar'
    ), $atts));

    $content = do_shortcode($content);
    $container = '<div class="static-column-container">' . $content . '</div>';
    return $container;
}

add_shortcode('static-cont', 'static_col_container');

function static_col($atts, $content) {
    extract(shortcode_atts(array(
    'space' => '2',
    'class' => ''
    ), $atts));

    $content = do_shortcode($content);
    $column_container = '<div class="static-column static-column-' . $space . ' ' . $class . '">' . $content . '</div>';

    return $column_container;
}

add_shortcode('static-col', 'static_col');

使い方は次のとおりです。

[static-cont]
    [static-col]
       put some content here...
    [/static-col]
    [static-col]
       put some content here...
    [/static-col]
[/static-cont]

私はWordpressがppaタグを挿入するのにwpautopを使っていることを知っています。

remove_filter('the_content', 'wpautop');

問題は、今度はあなたがすべてのp要素を自分で入力しなければならないことです。誰かがより良い解決策を見つけましたか?

1

The_contentからフィルタを削除し、ショートコードが処理された後にそれを実行します。

試してください:

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);

通常、ショートコードは、wpautopがコンテンツに適用された後に処理されます。 http://core.trac.wordpress.org/browser/tags/3.1/wp-includes/shortcodes.php#L296 を参照してください。

8
keatch

私は同じ問題を抱えていました、バリデーションの観点からではなく、見慣れないpタグが私のCSSを壊していたスタイリングの観点から。

$retour ='<div class="testimonial-meta">'
$retour .='<h5>'.$testimonial_name.',</h5><span>'.$testimonial_details.'</span>';
$retour .='</div>';
return $retour;

戻っていた:

<div class="testimonial-meta">
    <h5>John Doe,</h5>
    <p><span>Company CEO</span></div>
</div>

私のCSSを追加することでスタイルを修正しました:

.testimonial-meta p{
    display:inline;
}

うまくいけば、これは誰かに役立つかもしれません。

0
Djave

私のローカルインストールでその問題が発生しているのではなく、あなたのショートコードコードをコピーしてから提供サンプルを投稿すると、出力は次のようになりました。

<div class="static-column-container"><br>
<div class="static-column static-column-2 "><br>
put some content here…<br>
</div><br>
<div class="static-column static-column-2 "><br>
put some content here…<br>
</div><br>
</div>

HTMLとVisual iを切り替えると常に見えます。

[static-cont]
    [static-col]
       put some content here...
    [/static-col]
    [static-col]
       put some content here...
    [/static-col]
[/static-cont]

...何もありません..

TinyMCEは進んでいますか?

0
t31os