private function create_link()
{
// If we don't have any fonts then we can exit.
if (empty($this->fonts)) {
return;
}
// Get font-family + subsets.
$link_fonts = array();
foreach ($this->fonts as $font => $variants) {
// Are we force-loading all variants?
if (true === self::$force_load_all_variants) {
if (isset($this->google_fonts[$font]['variants'])) {
$variants = $this->google_fonts[$font]['variants'];
}
}
$variants = implode(',', $variants);
$link_font = str_replace(' ', '+', $font);
if (!empty($variants)) {
$link_font .= ':' . $variants;
}
$link_fonts[] = $link_font;
}
// Are we force-loading all subsets?
if (true === self::$force_load_all_subsets) {
if (isset($this->google_fonts[$font]['subsets'])) {
foreach ($this->google_fonts[$font]['subsets'] as $subset) {
$this->subsets[] = $subset;
}
}
}
if (!empty($this->subsets)) {
$this->subsets = array_unique($this->subsets);
}
$this->link = add_query_arg(array('family' => str_replace('%2B', '+', urlencode(implode('|', $link_fonts))), 'subset' => urlencode(implode(',', $this->subsets))), 'https://fonts.googleapis.com/css');
}