# Why only the year is as a link in \cite reference [duplicate]

This question already has an answer here:

I have a problem in citing references with \cite, I have only the year as a link. I want to display the author and year as a single link. I don't know where the problem is?!

  \documentclass{article}
\usepackage{filecontents}%
%\usepackage[style=authoryear,natbib]{biblatex}
\usepackage[style=apa,backref=true,backend=biber,natbib=true,hyperref=true]    {biblatex}
\usepackage[american]{babel}
\DeclareLanguageMapping{american}{american-apa}

\begin{filecontents*}{apabibli1.bib}
@article{Sampson1989,
author = {Sampson, R J and Groves, W B},
year = {1989},
title = {Community structure and crime: testing social-disorganization theory},
volume = {94},
number = {4},
journal = {Am J Soc},
pages = {774}
}
@book{Rijsbergen1979,
author = {Rijsbergen, C V},
year = {1979},
title = {Information retrieval},
publisher = {Butter Worths}
}
\end{filecontents*}
\usepackage{xpatch}
\xpatchbibmacro{author}
{%
\newunit\newblock
}
{%
}{}{}
\xpatchbibmacro{name:apa:last-first}
{%
}
{%
}{}{}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}
\printfield{volume}%
\printfield{number}%
\usebibmacro{issuename}%
\newunit}
\AtBeginBibliography{\renewcommand*{\finalnamedelim}{%
\ifthenelse{\value{listcount}>\maxprtauth}
{}
{\ifthenelse{\value{liststop}>2}
\renewcommand\bibinitperiod{}
\renewcommand\bibinitdelim{}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat[article]{volume}{\apanum{#1}}
\DeclareFieldFormat{title}{\iffieldequalstr{titleisdescription}{true}
{\mkbibbrackets{#1}}{#1\isdot}}

\renewcommand*{\finentrypunct}{\relax}
\setlength{\bibhang}{1.2em}
\usepackage{hyperref}
\hypersetup{
citecolor    = blue,
urlcolor=blue
}
\begin{document}
\citealt{Sampson1989, Rijsbergen1979}\\
\citet{Sampson1989, Rijsbergen1979}\\
\citep{Sampson1989, Rijsbergen1979}\\
\citeauthor{Sampson1989}
\nocite{*}
\printbibliography
\end{document}