Intereting Posts
Функции разбиения на страницы не будут работать Правило перезаписи QSA Как изменить ярлыки в форме регистрации WordPress по умолчанию? Как добавить скрипт в админ с помощью script-loader.php? Статические каталоги в многоузловой сети WordPress Как показать настраиваемое поле в специальных пользовательских сообщениях типа сообщений только при заполнении Ошибка PHP Когда активен плагин Расширенные настройки текстового редактора сохраняются во всех редакторах расширенного текста Как создать пользовательскую форму входа / регистрации с обработкой ошибок? Подписи к изображениям имеют дополнительный размер 10px, а это не CSS? Динамическая манипуляция что нужно сказать add_filter, сколько параметров вы хотите передать функции? Сделать эскизы в woocommerce вместо основного изображения вместо открытия fancybox Показать сообщения в блоге с другого сайта до WordPress без RSS-канала Показать wp_nav_menu () на основе URL-адреса без резервного копирования

Ошибка при передаче функции post_content

Цель этой функции – просто обернуть первое вхождение ключевого слова в жирные метки. Я получаю сообщение об ошибке на строке, указанной ниже.

Предупреждение: DOMDocument :: loadHTML () [domdocument.loadhtml]: имя атрибута разбора ошибок в Entity, строка: 4 в C: \ xampplite \ htdocs \ testsite \ wp-content \ plugins \ mylugin \ test.php в строке 40

Это правильный способ передать объект post_content?

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; } 

Solutions Collecting From Web of "Ошибка при передаче функции post_content"

Привет @Scott B:

Вот измененная версия того, что у вас есть, что устраняет ошибку (хотя XPath не соответствует, я не гуру XPath, поэтому не могу помочь с правильным синтаксисом XPath):

 add_filter('wp_insert_post_data', 'my_bold_keyword', 10, 2 ); function my_bold_keyword( $data, $postarr ) { $myKeyword = "test 123"; $d = new DOMDocument(); $d->loadHTML($postarr['post_content']); //ERROR NO LONGER 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; } 

PS Об этом PhpStorm … '-)