: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Yoast\WP\SEO\Values\Robots;
* The list of user agents.
private $user_agent_list;
* User Agent list constructor.
public function __construct() {
$this->user_agent_list = [];
* Checks if given user_agent is already registered.
* @param string $user_agent The user agent identifier.
public function has_user_agent( $user_agent ) {
return \array_key_exists( $user_agent, $this->user_agent_list );
* Gets the user agent object. If it is not yet registered it creates it.
* @param string $user_agent The user agent identifier.
public function get_user_agent( $user_agent ) {
if ( $this->has_user_agent( $user_agent ) ) {
return $this->user_agent_list[ $user_agent ];
$this->user_agent_list[ $user_agent ] = new User_Agent( $user_agent );
return $this->user_agent_list[ $user_agent ];
* Gets the list of user agents.
public function get_user_agents() {
return $this->user_agent_list;
* Gets a list of all disallow directives by user agent.
public function get_disallow_directives() {
foreach ( $this->user_agent_list as $user_agent ) {
$directives[ $user_agent->get_user_agent() ] = $user_agent->get_disallow_paths();
* Gets a list of all sallow directives by user agent.
public function get_allow_directives() {
foreach ( $this->user_agent_list as $user_agent ) {
$directives[ $user_agent->get_user_agent() ] = $user_agent->get_allow_paths();