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 26.9
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 );
}
);
}
}