: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* @param string $wpseo_options_group_name The name for the wpseo option group in the database.
* @param string $option_name The name for the option to set.
* @param mixed $option_value The value for the option.
* @return bool Returns true if the option is successfully saved in the database.
public static function save_option( $wpseo_options_group_name, $option_name, $option_value ) {
$options = static::get_option( $wpseo_options_group_name );
$options[ $option_name ] = $option_value;
if ( isset( static::$option_instances[ $wpseo_options_group_name ] ) && static::$option_instances[ $wpseo_options_group_name ]->multisite_only === true ) {
static::update_site_option( $wpseo_options_group_name, $options );
update_option( $wpseo_options_group_name, $options );
// Check if everything got saved properly.
$saved_option = static::get_option( $wpseo_options_group_name );
return $saved_option[ $option_name ] === $options[ $option_name ];
* Adds the multisite options to the option stack if relevant.
* @param array $option The currently present options settings.
* @return array Options possibly including multisite.
protected static function add_ms_option( $option ) {
if ( ! is_multisite() ) {
$ms_option = static::get_option( 'wpseo_ms' );
if ( $ms_option === null ) {
return array_merge( $option, $ms_option );
* Checks if installation is multisite.
* @return bool True when is multisite.
protected static function is_multisite() {
if ( $is_multisite === null ) {
$is_multisite = is_multisite();
* Retrieves a lookup table to find in which option_group a key is stored.
* @return array The lookup table.
private static function get_lookup_table() {
foreach ( array_keys( static::$options ) as $option_name ) {
$full_option = static::get_option( $option_name );
foreach ( $full_option as $key => $value ) {
$lookup_table[ $key ] = $option_name;
* Retrieves a lookup table to find in which option_group a key is stored.
* @return array The lookup table.
private static function get_pattern_table() {
foreach ( static::$options as $option_name => $option_class ) {
$instance = call_user_func( [ $option_class, 'get_instance' ] );
foreach ( $instance->get_patterns() as $key ) {
$pattern_table[ $key ] = $option_name;