0

以下のコードは、WordPressコンテンツで単語を検索し、これらの単語をリンクとdivに置き換えます。div<p>が挿入されたタグを閉じるときに問題が発生します。

$myposts = get_pages(args...);
$replace = array();
$i = 1;

foreach( $myposts as $post ) {
    setup_postdata($post);
    $replace[get_the_title()] = '<a href="#popupBasic' . $i . '" data-rel="popup">' . get_the_title() . '</a><div data-role="popup" class="tooltipBox" id="popupBasic' . $i . '">' . get_the_content() . '</div>';
    $i++;
}

$text = str_replace(array_keys($replace), $replace, $text);

str_replaceが<p>このようにタグを壊すのはなぜですか?

<div>
    <p>Some random text thats been <a href="#" class="link">cutt</a></p><div style="display: none;"><!-- placeholder --></div> off.<p></p>
</div>

PHP内で修正できない場合、jQueryで修正できますか?切り取られた単語、この場合は「off」を元に戻したいと思います。<p>リンクの後で閉じられるタグに。また<p>、最後に空のタグを削除します。

4

1 に答える 1

5

p要素にはフレージングコンテンツが含まれています。divフレージングコンテンツでは無効です。フローコンテンツでは有効です。(aのdiv内側に配置することは、aの内側に配置するpことに似ています。)したがって、ブラウザーは無効なマークアップを最大限に活用しています。pp

spanではなくを使用してみてくださいdiv

于 2012-11-13T14:28:45.223 に答える