Удаляем все целевые элементы перед рендерингом страницы, точное удаление с использованием DOMDocument в PHP:
строку Elementor если в ней присутствует слово Elementor
элементы с классом .edit_with_elementor , с id=elementor-editor, с id=ementor-switch-mode
function hide_elementor_admin_elements() {
ob_start(function($content) {
// Загружаем содержимое в DOMDocument
$dom = new DOMDocument();
libxml_use_internal_errors(true); // Игнорируем ошибки парсинга HTML
$dom->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
libxml_clear_errors();
// Удаляем элементы , содержащие "Elementor"
$spans = $dom->getElementsByTagName('span');
for ($i = $spans->length - 1; $i >= 0; $i--) {
$span = $spans->item($i);
if ($span->hasAttribute('class') && strpos($span->getAttribute('class'), 'post-state') !== false) {
if (trim($span->nodeValue) === 'Elementor') {
$span->parentNode->removeChild($span);
}
}
}
// Удаляем элементы с классом .edit_with_elementor
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//*[@class="edit_with_elementor"]') as $node) {
$node->parentNode->removeChild($node);
}
// Удаляем элемент с id="elementor-editor"
$editor = $dom->getElementById('elementor-editor');
if ($editor) {
$editor->parentNode->removeChild($editor);
}
// Удаляем элемент с id="elementor-switch-mode"
$switch_mode = $dom->getElementById('elementor-switch-mode');
if ($switch_mode) {
$switch_mode->parentNode->removeChild($switch_mode);
}
// Возвращаем модифицированный контент
return $dom->saveHTML();
});
}
add_action('admin_init', 'hide_elementor_admin_elements');
function end_ob_clean() {
ob_end_flush();
}
add_action('shutdown', 'end_ob_clean');