The purpose of this function is to simply wrap the first occurrence of the keyword in bold tags. I'm getting an error on the line marked below. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: error parsing attribute name in Entity, line: 4 in C:\xampplite\htdocs\testsite\wp-content\plugins\mylugin\test.php on line 40 Is this the correct way to pass the post_content object? add_filter('wp_insert_post_data', 'my_bold_keyword' ); function my_bold_keyword($content){ $myKeyword = "test 123"; $d = new DOMDocument(); $d->loadHTML($content['post_content']); //ERROR OCCURS HERE $x = new DOMXpath($d); $Matches = $x->query("//text()[contains(.,$myKeyword) and not(ancestor::h1) and not(ancestor::h2) and not(ancestor::h3) and not(ancestor::h4) and not(ancestor::h5) and not(ancestor::h6)]"); if($Matches && $Matches->length > 0){ $myText = $Matches->item(0); // need to wrap #myText in <b> wrapper } return $content; }