=' ) ) { add_filter( 'get_post_metadata', [ $this, 'maybeDisableWpBakeryMetaTags' ], 10, 3 ); } if ( ! aioseo()->postSettings->canAddPostSettingsMetabox( get_post_type( $this->getPostId() ) ) ) { return; } add_action( 'vc_frontend_editor_enqueue_js_css', [ $this, 'enqueue' ] ); add_action( 'vc_backend_editor_enqueue_js_css', [ $this, 'enqueue' ] ); add_filter( 'vc_nav_front_controls', [ $this, 'addNavbarControls' ] ); add_filter( 'vc_nav_controls', [ $this, 'addNavbarControls' ] ); } /** * Maybe disable WP Bakery meta tags. * * @since 4.7.1 * * @param mixed $value The value of the meta. * @param int $objectId The object ID. * @param string $metaKey The meta key. * @return mixed The value of the meta. */ public function maybeDisableWpBakeryMetaTags( $value, $objectId, $metaKey ) { if ( is_singular() && '_wpb_post_custom_seo_settings' === $metaKey ) { return null; } return $value; } /** * Add AIOSEO controls to the WPBakery navbar. * * @since 4.5.2 * * @param array $controlList The control list. * @return array The control list. */ public function addNavbarControls( $controlList ) { if ( ! $controlList ) { return $controlList; } remove_filter( 'vc_nav_front_controls', [ $this, 'addNavbarControls' ] ); remove_filter( 'vc_nav_controls', [ $this, 'addNavbarControls' ] ); $controlList[] = [ 'aioseo', '
  • ' ]; return $controlList; } /** * Returns whether or not the given Post ID was built with WPBakery. * * @since 4.5.2 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with WPBakery. */ public function isBuiltWith( $postId ) { $postObj = get_post( $postId ); if ( ! empty( $postObj ) && preg_match( '/vc_row/', (string) $postObj->post_content ) ) { return true; } return false; } /** * Returns whether should or not limit the modified date. * * @since 4.5.2 * * @param int $postId The Post ID. * @return boolean Whether or not sholud limit the modified date. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `saveAjaxFe` action. if ( empty( $_REQUEST['_vcnonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_vcnonce'] ) ), 'vc-nonce-vc-admin-nonce' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['aioseo_limit_modified_date'] ) && (bool) $_REQUEST['aioseo_limit_modified_date']; } /** * Returns the processed page builder content. * * @since 4.5.2 * * @param int $postId The post id. * @param mixed $content The raw content. * @return string The processed content. */ public function processContent( $postId, $content = null ) { if ( method_exists( '\WPBMap', 'addAllMappedShortcodes' ) ) { \WPBMap::addAllMappedShortcodes(); } return parent::processContent( $postId, $content ?? '' ); } }