【发布时间】:2022-01-10 22:31:06
【问题描述】:
我需要在 Wordpress 页面上的 div 部分中替换可变数量的连续段落,该部分仅包含这个 div 部分。我想在服务器端执行此操作。我认为这可以通过the_content() 钩子和DomDocument 类来完成,但我不知道该怎么做。您可以在下面看到div 部分结构。我需要替换的段落在最后一个标题和最后一个段落之间(所以标题和最后一个段落保持不变)。我将不胜感激。
<div id="text-document">
<h2>a title</h2>
<p>some content</p>
<!-- other paragraphs here -->
<!-- some other DIVs, titles and paragraphs here -->
<h2>the last title</h2>
<!-- some paragraphs here -->
<p>the last paragraph</p>
</div>
DomDocument/Wordpress 部分:
add_filter( 'the_content', function( $content ) {
$content = mb_convert_encoding( $content, 'HTML-ENTITIES', 'UTF-8' );
$dom = new DOMDocument( '1.0', 'UTF-8' );
@$dom->loadHTML( $content );
//the missing part
$content = $dom->saveHTML( $dom );
return $content;
} );
【问题讨论】:
标签: php html wordpress domdocument