getPostId() ); if ( empty( $postType ) ) { $postType = ! empty( $_GET['post_type'] ) ? sanitize_text_field( wp_unslash( $_GET['post_type'] ) ) : 'post'; // phpcs:ignore HM.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Recommended, Generic.Files.LineLength.MaxExceeded } if ( ! aioseo()->postSettings->canAddPostSettingsMetabox( $postType ) ) { return; } add_action( 'siteorigin_panel_enqueue_admin_scripts', [ $this, 'enqueue' ] ); } /** * Returns whether or not the given Post ID was built with SiteOrigin. * * @since 4.6.6 * * @param int $postId The Post ID. * @return bool Whether or not the Post was built with SiteOrigin. */ public function isBuiltWith( $postId ) { $postObj = get_post( $postId ); if ( ! empty( $postObj ) && ( preg_match( '/siteorigin_widget/', (string) $postObj->post_content ) || preg_match( '/so-panel widget/', (string) $postObj->post_content ) ) ) { return true; } return false; } /** * Returns the processed page builder content. * * @since 4.6.6 * * @param int $postId The post id. * @param mixed $content The raw content. * @return string The processed content. */ public function processContent( $postId, $content = null ) { // When performing a save_post action, we must execute the siteorigin_widget shortcodes if there are image widgets. // This ensures that the getFirstImageInContent method can locate the images, as SiteOrigin uses shortcodes for images. // We cache the first image in the content during post saving. if ( doing_action( 'save_post' ) && aioseo()->options->searchAppearance->advanced->runShortcodes && ( stripos( $content, 'SiteOrigin_Widget_Image_Widget' ) !== false || stripos( $content, 'WP_Widget_Media_Image' ) !== false ) ) { $content = aioseo()->helpers->doAllowedShortcodes( $content, $postId, [ 'siteorigin_widget' ] ); } return parent::processContent( $postId, $content ); } }