Yoast\WP\SEO\Services\Importing
Importable_Detector_Service{}
Detects if any data from other SEO plugins is available for importing.
Хуков нет.
Использование
$Importable_Detector_Service = new Importable_Detector_Service(); // use class methods
Методы
- public __construct( Importing_Action_Interface ...$importers )
- public detect_cleanups( $plugin = null )
- public detect_importers( $plugin = null, $type = null )
- public filter_actions( $all_actions, $plugin = null, $type = null )
Код Importable_Detector_Service{} Importable Detector Service{} Yoast 22.3
class Importable_Detector_Service { /** * All known import actions * * @var array|Importing_Action_Interface[] */ protected $importers; /** * Importable_Detector_Service constructor. * * @param Importing_Action_Interface ...$importers All of the known importers. */ public function __construct( Importing_Action_Interface ...$importers ) { $this->importers = $importers; } /** * Returns the detected importers that have data to work with. * * @param string|null $plugin The plugin name of the importer. * @param string|null $type The type of the importer. * * @return array The detected importers that have data to work with. */ public function detect_importers( $plugin = null, $type = null ) { $detectors = $this->filter_actions( $this->importers, $plugin, $type ); $detected = []; foreach ( $detectors as $detector ) { if ( $detector->is_enabled() && $detector->get_type() !== 'cleanup' && ! $detector->get_completed() && $detector->get_limited_unindexed_count( 1 ) > 0 ) { $detected[ $detector->get_plugin() ][] = $detector->get_type(); } } return $detected; } /** * Returns the detected cleanups that have data to work with. * * @param string|null $plugin The plugin name of the cleanup. * * @return array The detected importers that have data to work with. */ public function detect_cleanups( $plugin = null ) { $detectors = $this->filter_actions( $this->importers, $plugin, 'cleanup' ); $detected = []; foreach ( $detectors as $detector ) { if ( $detector->is_enabled() && ! $detector->get_completed() && $detector->get_limited_unindexed_count( 1 ) > 0 ) { $detected[ $detector->get_plugin() ][] = $detector->get_type(); } } return $detected; } /** * Filters all import actions from a list that do not match the given Plugin or Type. * * @param Importing_Action_Interface[] $all_actions The complete list of actions. * @param string|null $plugin The Plugin name whose actions to keep. * @param string|null $type The type of actions to keep. * * @return array */ public function filter_actions( $all_actions, $plugin = null, $type = null ) { return \array_filter( $all_actions, static function ( $action ) use ( $plugin, $type ) { return $action->is_compatible_with( $plugin, $type ); } ); } }