How to update Google fonts for OnePress Plus
1. Install and activate the child theme by following this documentation https://docs.famethemes.com/article/139-sample-child-theme.
2. Copy the file google-fonts.php from the plugin's folder /wp-content/plugins/onepress-plus/inc/typography/ to the child theme folder.
3. Go to Google Fonts API page to get the newest fonts https://developers.google.com/fonts/docs/developer_api, click on the EXECUTE button to get the object.
4. Edit the file google-fonts.php in the child theme folder, replace the font object with the new one from the Google Fonts API
$google_fonts = ' { "kind": "webfonts#webfontList", "items": [ { "family": "ABeeZee", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v14", "lastModified": "2020-09-02", "files": { "regular": "http://fonts.gstatic.com/s/abeezee/v14/esDR31xSG-6AGleN6tKukbcHCpE.ttf", "italic": "http://fonts.gstatic.com/s/abeezee/v14/esDT31xSG-6AGleN2tCklZUCGpG-GQ.ttf" }, "category": "sans-serif", "kind": "webfonts#webfont" }, ... ] } ';
5. Add this code to the file functions.php in the child theme folder to load the new fonts
add_filter( 'onepress_typography_get_google_fonts', 'onepress_update_google_fonts' ); function onepress_update_google_fonts( $fonts ) { //delete_transient( 'wp_typography_fonts' ); // for debug $font_output = include get_stylesheet_directory() .'/google-fonts.php'; $fonts = array(); $scheme = is_ssl() ? 'https' : 'http'; if ( is_array( $font_output ) ) { foreach ( $font_output['items'] as $item ) { $name = str_replace(' ', '+', $item['family']); $url = $scheme . "://fonts.googleapis.com/css?family={$name}:" . join($item['variants'], ','); if ( isset( $item['subsets'] ) ) { $url .= '&subset=' . join(',', $item['subsets']); } $atts = array( 'name' => $item['family'], 'category' => $item['category'], 'font_type' => 'google', 'font_weights' => $item['variants'], 'subsets' => $item['subsets'], 'url' => $url ); // Add this font to the fonts array $id = sanitize_title( $item['family'] ); $fonts[$id] = $atts; } } return $fonts; }
* Note: You might not see the new fonts in the customizer due to the OnePress Plus plugin caches the old fonts. Uncomment the code
delete_transient( 'wp_typography_fonts' ); // for debug
for the first time to delete the cache and remove it in the next run.