• File: fix-news-dependencies-integration.php
  • Full Path: /home/matthif/www/wp-content/plugins/wordpress-seo/src/integrations/admin/fix-news-dependencies-integration.php
  • Date Modified: 02/24/2024 11:29 PM
  • File size: 1.55 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace Yoast\WP\SEO\Integrations\Admin;

use 
WP_Screen;
use 
WPSEO_Admin_Asset_Manager;
use 
Yoast\WP\SEO\Conditionals\Admin_Conditional;
use 
Yoast\WP\SEO\Conditionals\News_Conditional;
use 
Yoast\WP\SEO\Integrations\Integration_Interface;

/**
 * Fix_News_Dependencies_Integration class.
 */
class Fix_News_Dependencies_Integration implements Integration_Interface {

    
/**
     * Returns the conditionals based in which this loadable should be active.
     *
     * In this case: when on an admin page.
     *
     * @return array The conditionals.
     */
    
public static function get_conditionals() {
        return [ 
Admin_Conditional::class, News_Conditional::class ];
    }

    
/**
     * Registers an action to disable script concatenation.
     *
     * @return void
     */
    
public function register_hooks() {
        global 
$pagenow;

        
// Load the editor script when on an edit post or new post page.
        
$is_post_edit_page $pagenow === 'post.php' || $pagenow === 'post-new.php';
        if ( 
$is_post_edit_page ) {
            
\add_action'admin_enqueue_scripts', [ $this'add_news_script_dependency' ], 11 );
        }
    }

    
/**
     * Fixes the news script dependency.
     *
     * @return void
     */
    
public function add_news_script_dependency() {
        
$scripts \wp_scripts();

        if ( ! isset( 
$scripts->registered['wpseo-news-editor'] ) ) {
            return;
        }

        
$is_block_editor  WP_Screen::get()->is_block_editor();
        
$post_edit_handle 'post-edit';
        if ( ! 
$is_block_editor ) {
            
$post_edit_handle 'post-edit-classic';
        }

        
$scripts->registered['wpseo-news-editor']->deps[] = WPSEO_Admin_Asset_Manager::PREFIX $post_edit_handle;
    }
}