Skip to content

Commit

Permalink
Merge branch 'release/2.16.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
Misplon committed Feb 7, 2022
2 parents 386f8e6 + 234edd2 commit c937832
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 51 deletions.
117 changes: 70 additions & 47 deletions compat/yoast.php
Original file line number Diff line number Diff line change
@@ -1,64 +1,87 @@
<?php
/**
* If Yoast OpenGraph is enabled, we'll need disable PB when it gets the excerpt
* to avoid conflicts with other plugins.
*
*/
function siteorigin_yoast_opengraph_panels_disable( $content ) {
global $wp_current_filter;
if ( count( $wp_current_filter ) > 2 && $wp_current_filter[1] == 'wpseo_head' ) {
// Temporarily disable Page Builder for this instance of the_content.
add_filter( 'siteorigin_panels_filter_content_enabled', '__return_false' );
} else {
add_filter( 'siteorigin_panels_filter_content_enabled', '__return_true' );
}
return $content;
}

// If Yoast OpenGraph is enabled, disable Page Builder as needed.
if (
class_exists( 'WPSEO_Options' ) &&
method_exists( 'WPSEO_Options', 'get' ) &&
WPSEO_Options::get( 'opengraph' )
) {
/**
* If Yoast OpenGraph is enabled, we'll need disable PB when it gets the excerpt
* to avoid conflicts with other plugins.
*
*/
function siteorigin_yoast_opengraph_panels_disable( $content ) {
global $wp_current_filter;
if ( count( $wp_current_filter ) > 2 && $wp_current_filter[1] == 'wpseo_head' ) {
// Temporarily disable Page Builder for this instance of the_content.
add_filter( 'siteorigin_panels_filter_content_enabled', '__return_false' );
} else {
add_filter( 'siteorigin_panels_filter_content_enabled', '__return_true' );
}
return $content;
}

// If Yoast OpenGraph is enabled, disable Page Builder as needed.
add_filter( 'the_content', 'siteorigin_yoast_opengraph_panels_disable', 1 );
}

/**
* Returns a list of all images added using Page Builder.
*
* @param $images an array of all detected images used in the current post.
* @param $post_id the current post id.
*
* @return array
*/
function siteorigin_yoast_sitemap_images_compat( $images, $post_id ) {
if (
get_post_meta( $post_id, 'panels_data', true ) &&
extension_loaded( 'xml' ) &&
class_exists( 'DOMDocument' )
) {
$content = SiteOrigin_Panels::renderer()->render(
$post_id,
false
);
if ( defined( 'WPSEO_FILE' ) ) {
/**
* Returns a list of all images added using Page Builder to allow for their inclusion in the Yoast Sitemap.
*
* @param $images an array of all detected images used in the current post.
* @param $post_id the current post id.
*
* @return array
*/
function siteorigin_yoast_sitemap_images_compat( $images, $post_id ) {
if (
get_post_meta( $post_id, 'panels_data', true ) &&
extension_loaded( 'xml' ) &&
class_exists( 'DOMDocument' )
) {
$content = SiteOrigin_Panels::renderer()->render(
$post_id,
false
);

libxml_use_internal_errors( true );
$dom = new DOMDocument();
$dom->loadHTML( '<?xml encoding="UTF-8">' . $content );
libxml_clear_errors();
libxml_use_internal_errors( true );
$dom = new DOMDocument();
$dom->loadHTML( '<?xml encoding="UTF-8">' . $content );
libxml_clear_errors();

foreach ( $dom->getElementsByTagName( 'img' ) as $img ) {
$src = $img->getAttribute( 'src' );
foreach ( $dom->getElementsByTagName( 'img' ) as $img ) {
$src = $img->getAttribute( 'src' );

if ( ! empty( $src ) && $src == esc_url( $src ) ) {
$images[] = array(
'src' => $src,
);
if ( ! empty( $src ) && $src == esc_url( $src ) ) {
$images[] = array(
'src' => $src,
);
}
}
}

return $images;
}

return $images;
add_filter( 'wpseo_sitemap_urlimages', 'siteorigin_yoast_sitemap_images_compat', 10, 2 );
}
add_filter( 'wpseo_sitemap_urlimages', 'siteorigin_yoast_sitemap_images_compat', 10, 2 );

if ( function_exists( 'yoast_wpseo_video_seo_init' ) ) {
/**
* If the Yoast SEO: Video plugin is trying to index a post, and the post has a page builder layout, render it using Page Builder.
*
* @param $content The content to analyze.
* @param $vid Array with video info, usually empty.
* @param $post Post object.
*
* @return string
*/
function siteorigin_yoast_video_render_page_builder( $content, $vid, $post ) {
if ( ! empty( $_POST['panels_data'] ) ) {
$content = SiteOrigin_Panels::renderer()->render( $post->ID );
}
return $content;

}
add_filter( 'wpseo_video_index_content', 'siteorigin_yoast_video_render_page_builder', 10, 3 );
}
5 changes: 3 additions & 2 deletions inc/admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -567,8 +567,9 @@ public function enqueue_seo_compat() {
if (
defined( 'WPSEO_FILE' ) &&
(
wp_script_is( 'yoast-seo-admin-global-script' ) || // => 14.6
wp_script_is( 'yoast-seo-metabox' ) // <= 14.5
wp_script_is( 'yoast-seo-metabox' ) || // <= 14.5.
wp_script_is( 'yoast-seo-admin-global-script' ) || // => 14.6 <= 17.9.
wp_script_is( 'yoast-seo-post-edit-classic' ) // => 18
)
) {
wp_enqueue_script(
Expand Down
4 changes: 4 additions & 0 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ SiteOrigin Premium includes access to our professional email support service, pe

== Changelog ==

= 2.16.2 - 07 February 2022 =
* Added Yoast Video SEO plugin integration.
* Restored content analysis functionality for newer Yoast SEO versions.

= 2.16.1 - 26 January 2022 =
* Sidebar Emulator: Accounted for a potential notice when setting widget ID.
* Updated the `Tested up to tag` to `5.9`.
Expand Down
7 changes: 5 additions & 2 deletions siteorigin-panels.php
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,11 @@ public function init_compat() {
require_once plugin_dir_path( __FILE__ ) . 'compat/widget-options.php';
}

// Compatibility with Yoast Sitemap.
if ( defined( 'WPSEO_FILE' ) ) {
// Compatibility with Yoast plugins.
if (
defined( 'WPSEO_FILE' ) ||
function_exists( 'yoast_wpseo_video_seo_init' )
) {
require_once plugin_dir_path( __FILE__ ) . 'compat/yoast.php';
}

Expand Down

0 comments on commit c937832

Please sign in to comment.