Can't move 2D sprite diagonally

Been looking through these forums and the internet but can’t seem to find a project which is similar to mine. I’m trying to get my sprite to move diagonally when I press W + A or S + D for example. My code for movement is below.

// Update is called once per frame
void Update()
{
    CharacterMovement();
}

public void CharacterMovement()
{
      public float speed = 5f;

      if (Input.GetKey(KeyCode.W))
      {
          transform.Translate(Vector2.up * speed * Time.deltaTime);
      }
      else if (Input.GetKey(KeyCode.S))
      {
          transform.Translate(Vector2.down * speed * Time.deltaTime);
      }
      else if (Input.GetKey(KeyCode.A))
      {
          transform.Translate(Vector2.left * speed * Time.deltaTime);
      }
      else if (Input.GetKey(KeyCode.D))
      {
          transform.Translate(Vector2.right * speed * Time.deltaTime);
      }

}

Fixed myself - answer below for others:

public float speed;

void Update()
{
    characterMovement();
}

void characterMovement()
{
    transform.Translate(Input.GetAxis("Horizontal") * speed, 0f, 0f);
    transform.Translate(0f, Input.GetAxis("Vertical") * speed, 0f);
}

}