Current File : /home/kelaby89/sergio-cuchi.tattoo/wp-content/plugins/siteorigin-panels/compat/seopress.php |
<?php
function siteorigin_panels_seopress_compat( $content ) {
$id = empty( $_GET['post'] ) ? (int) $_GET['post_id'] : (int) $_GET['post'];
if ( ! empty( $id ) ) {
$page_builder_data = get_post_meta( $id, 'panels_data', true );
if ( ! empty( $page_builder_data ) ) {
$content = SiteOrigin_Panels_Admin::single()->generate_panels_preview( $id, $page_builder_data );
// To help with consistent results, we strip out certain elements.
if ( class_exists( 'DOMDocument' ) && class_exists( 'DOMXPath' ) ) {
$whitelist = array(
'p', 'a', 'img', 'caption', 'br',
'blockquote', 'cite', 'em', 'strong', 'i', 'b', 'q',
'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
'ul', 'ol', 'li', 'table', 'tr', 'th', 'td',
);
$dom = new DOMDocument();
$dom->loadHTML( $content );
$xpath = new DOMXPath( $dom );
$elements = $xpath->query( '//iframe | //script | //style | //link' );
foreach ( $elements as $element ) {
$element->parentNode->removeChild( $element );
}
$dom->removeChild( $dom->doctype );
// Remove elements that are not in the whitelist.
$elements = $xpath->query( '//*' );
foreach ( $elements as $element ) {
if ( ! in_array( $element->nodeName, $whitelist ) ) {
$content = $dom->createDocumentFragment();
while ( $element->childNodes->length > 0 ) {
$content->appendChild( $element->childNodes->item( 0 ) );
}
$element->parentNode->replaceChild( $content, $element );
}
}
$content = $dom->saveHTML();
}
}
}
return $content;
}
add_action( 'seopress_dom_analysis_get_post_content', 'siteorigin_panels_seopress_compat', 15, 2 );