: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* File with the class to handle data from Platinum SEO Pack.
* @package WPSEO\Admin\Import\Plugins
* Class with functionality to import & clean Ultimate SEO post metadata.
class WPSEO_Import_Platinum_SEO extends WPSEO_Plugin_Importer {
protected $plugin_name = 'Platinum SEO Pack';
* Meta key, used in SQL LIKE clause for delete query.
protected $meta_key = 'title';
* Array of meta keys to detect and import.
protected $clone_keys = [
'old_key' => 'description',
* Runs the import of post meta keys stored by Platinum SEO Pack.
protected function import() {
$return = parent::import();
$this->import_robots_meta();
* Cleans up all the meta values Platinum SEO pack creates.
protected function cleanup() {
$this->meta_key = 'title';
$this->meta_key = 'description';
$this->meta_key = 'metarobots';
* Finds all the robotsmeta fields to import and deals with them.
* There are four potential values that Platinum SEO stores:
* We only have to deal with the latter 3, the first is our default.
protected function import_robots_meta() {
$this->import_by_meta_robots( 'index,nofollow', [ 'nofollow' ] );
$this->import_by_meta_robots( 'noindex,follow', [ 'noindex' ] );
$this->import_by_meta_robots( 'noindex,nofollow', [ 'noindex', 'nofollow' ] );
* Imports the values for all index, nofollow posts.
* @param string $value The meta robots value to find posts for.
* @param array $metas The meta field(s) to save.
protected function import_by_meta_robots( $value, $metas ) {
$posts = $this->find_posts_by_robots_meta( $value );
foreach ( $posts as $post_id ) {
foreach ( $metas as $meta ) {
$this->maybe_save_post_meta( 'meta-robots-' . $meta, 1, $post_id );
* Finds posts by a given meta robots value.
* @param string $meta_value Robots meta value.
* @return array|bool Array of Post IDs on success, false on failure.
protected function find_posts_by_robots_meta( $meta_value ) {
'meta_key' => 'robotsmeta',
'meta_value' => $meta_value,