Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPressテーマにGoogle Web Fontsを “正しい “方法で追加する方法

WordPressテーマにGoogleウェブフォントを追加したいですか?

Googleフォントを使用すると、WordPressサイトで美しいWebフォントを簡単に使用できます。サイトのタイポグラフィ、ユーザーエクスペリエンス、美観を向上させるために使用できます。

この投稿では、WordPressテーマにGoogleウェブフォントを適切に追加する方法を紹介します。

Adding Google Web Fonts to your WordPress theme

ここでは、このガイドで取り上げるトピックの概要を説明する。

WordPressテーマに最適なGoogleフォントを探す

まず最初にすべきことは、気に入ったGoogleフォントを見つけることだ。Google Fontsのサイトにアクセスし、ライブラリをブラウズするだけです。

Google Fonts

気に入ったフォントが見つかったら、そのフォントをクリックしてさまざまなスタイルを表示させよう。

あなたのサイトで使用したいスタイルを選択することができます。

Select font styles

次に、「選択したファミリーを表示」ボタンをクリックすると、サイドバーが開きます。

ここから、「ウェブでの使用」のセクションで使用方法を確認できます。

Usage instructions

サイトにフォントを追加するための2つの異なるタブがあることがわかります。

1つ目はリンク方式で、ウェブフォントを追加する標準的な方法として推奨されています。

2つ目のタブでは、@import CSSメソッドを使用して、CSSスタイルシート経由でフォントを読み込むことができます。

それぞれの方法の長所と短所を紹介しよう。

注:これらの方法のいくつかでは、WordPressテーマファイルを編集する必要があります。FTPクライアントを使用してサイトに接続するか、ホスティングコントロールパネルのファイルマネージャーアプリを使用して行うことができます。

接続したら、/wp-content/themes/Your-Theme-Name/フォルダーにアクセスする必要があります。そこから、このチュートリアルで編集する必要のあるテーマファイルが見つかります。

Theme folder

詳しくは、WordPressでコードスニペットをコピー&ペーストする方法のチュートリアルをご覧ください。

方法1.プラグインを使ってGoogleフォントをテーマに追加する。

この方法では、Google Fontsを読み込むWordPressプラグインを使用する。

まず、フォント・プラグインをインストールして有効化する必要があります。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。

有効化したら、外観 ” カスタマイズページにアクセスしてテーマカスタマイザーを起動する必要があります。ここから、新規フォントプラグインタブが表示されます。

Fonts plugin tab

クリックするとプラグインオプションが表示されます。

サイトのエリアごとにGoogle Fontsを使い分けることができます。

Font settings

また、WordPressテーマ用のフォントを読み込むこともできます。

高度な設定 ” Load Fonts Onlyタブに切り替えるだけです。

Load fonts only

ここから、WordPressテーマに読み込むGoogle Fontsを選択できます。

フォント名を入力して選択するだけです。

Select font

作業が終わったら、公開するボタンをクリックして変更を保存することを忘れないでください。

プラグインの高度な機能を使ってサイトのエリアごとにフォントを割り当てた場合、それらは自動的に機能します。

一方、フォントのみを読み込む場合は、カスタムCSSルールを追加する必要があります。例えば、サイト全体の段落要素にフォントを読み込む方法を以下に示します。

p { 
font-family: 'Open Sans', sans-serif;
} 

方法2.テーマのヘッダーにGoogleウェブフォントを追加する

この方法は、WordPressテーマにGoogle Fontsを直接追加する最も簡単な方法です。

WordPressテーマまたは子テーマのheader.phpファイルを編集するだけです。その後、WordPressテーマのスタイルシートのリンクコードの前にリンクコードをコピー&ペーストしてください。

こんな感じだ:

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;800&display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="YOUR THEME STYLESHEET" media="screen">

基本的には、できるだけ早い段階でフォントのリクエストを出すことが目標です。これにより、ページをレンダリングする前にユーザーのブラウザーがフォントをダウンロードできるようになります。

それができたら、テーマのCSSファイルでそのフォントを使うことができます:

h1 {
    font-family: 'Open Sans',  sans- serif;
}

方法3.テーマのスタイルシートにGoogleフォントを追加する。

この方法では、WordPressテーマのメインCSSファイルにフォントCSSをインポートする。

WordPressテーマのルート・フォルダーにあるstyle.cssファイルを編集し、「@import」タブにあるコードをCSSファイルの先頭に追加するだけです。

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;800&display=swap');

デモサイトのstyle.cssファイルではこのようになっている。

Import font CSS

重要: CSSファイルの先頭に@import行を追加することを本当に〜してもよいですか?

方法4.WordPressでGoogleフォントを正しくエンキューする

先に述べた最初の2つの方法は、WordPressテーマファイルを編集してフォントを直接追加することが必須です。

これは、子テーマを使ってすべて変更する場合に有効です。

一方、これらの変更をメインテーマに加えた場合、次回テーマを更新したときにその変更は失われます。

もっと簡単な方法は、WordPressテーマで使用するGoogleフォントを自動的に読み込むコードをプログラムで追加することだ。

そのためには、サイト固有のプラグインにカスタムコードスニペットを追加するか、カスタムコードプラグインを使用します。詳しくは、WordPressでカスタムコードを追加する方法のチュートリアルをご覧ください。

以下のコードスニペットをWordPressサイトに追加するだけです。

function wpb_add_google_fonts() {
 
wp_enqueue_style( 'wpb-google-fonts', 'https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,700,300', false ); 
}
 
add_action( 'wp_enqueue_scripts', 'wpb_add_google_fonts' );

注:URLを追加したいGoogleフォントのURLに置き換えることをお忘れなく。

以上で、WordPressはLinkメソッドを使用して、追加したGoogleフォントを自動的に取得するようになります。

サイトのソースコードを表示すると、フッター部分にGoogle fontsのスタイルシートが追加されていることが確認できます。

Fonts loaded

ボーナスセクションウェブフォントがWordPressの速度に与える影響

Googleフォントは、世界中にサーバーを持つGoogleの巨大なCDNネットワークを通じて提供されるため、読み込みが非常に高速です。

これらのフォントは何百万ものサイトで使用されているため、ユーザーがすでにブラウザーに保存している可能性が高い。

これにより、サイトのスピードに与えるパフォーマンスの影響を軽減することができます。デザインに1つか2つのウェブフォントだけを使用することで、この影響をさらに減らすことができます。

詳しくは、WordPressのパフォーマンスとスピードに関する初心者向け完全ガイドをご覧ください。

WordPress テーマに Google Web Fonts を簡単に追加する方法について、このガイドがお役に立てれば幸いです。コーディングなしでゼロからカスタマイザーの WordPress テーマを作成するガイドと、最高の無料ホスティングサービスのリストもご覧ください。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

81件のコメントLeave a Reply

  1. I noticed that this video/instructions are dated 2015 and the screenshots, etc. are different. When I tried to embed the Google Fonts code in my header.php file as shown, it threw an error. So I’m thinking maybe this tutorial needs to be updated? Not sure, but… Thanks.

    • Thank you for your feedback, we’ll be sure to take a look into updating this article when able.

      Admin

  2. Thanks for the article! Please replace http: in fonts.googleapis.com/css… with https: in the function to enqueue Google Fonts to enable an encrypted link to googleapis.com…

  3. I got the font to show up but can’t figure out how to get it bold.
    Here’s an example of what i did in the css

    font-family:”Open Sans”, sans-serif;
    font-weight:bold;

    in the link i added to my header.php i added this:

    i tried subbing 700 for bold but no luck…
    any ideas?

    thanks in advance

    • Make sure you check your desired font-weights on Google fonts after selecting them in the “customize” tab.

  4. What do you think about importing Google web Fonts using JavaScript asynchronously as mentioned over here :

    Thanks
    Shubham

  5. One quick question – I looked up the code reference for wp_enqueue_style(). Its first argument is a string that denotes the name of the stylesheet. In your example, you use ‘wpb-google-fonts’ for the first argument. How can I tell what to put here for my site?

    • that’s the argument for header or footer. Since best practice is to put [almost] all scripts in the header it defaults to ‘true’ => footer, whereas ‘false’ would mean the NOT in the footer, but in the header instead.

      Unfortunately, font scripts stop everything else from loading, so putting them in the header sucks a litlte bit, which is why this article talks about making sure you’re only including the fonts you’ll actually use. On the flip side, putting them in the footer can cause default fonts like arial to load momentarily on your screen during painting until the webfont gets loaded. It’s a horrible caveat, but it is what it is.

      A practice I’m working into my workflow is to conditionally load fonts based on their usage in the site. For example, maybe “bold” is only used in h2’s and h3’s in blog post templates (single.php), then I’ll write a conditional enqueue for the bold script to only be enqueued when on single.php template.

      Hope that helps.

  6. I’m using the Punch Fonts plugin to add google fonts but I am not sure how to just get only heading 1 for the desired font. I don’t need this font for headings 2-6 so I only want to use the google font for heading one. How do I write that in the parameter?

    Currently I’m using: Oleo+Script+Swash+Caps:400

  7. Hello,

    I have tried all three methods but neither of them took effect completely. It seems that it only applies to certain elements and not to others that I specified with that font in the style sheet

    When I use the Element Inspector for the element where my Google Font is not applied, this is what I see:
    #site-title {
    font-family: \’Questrial\’, Helvetica, Arial, sans-serif;

    What do these mean \\ around my font? I mean, it looks like it is indicating an error but I can’t figure out what I am doing wrong? What could it be? Some code overriding mine, with higher priority? but where? how? Arghhhh it’s driving me nuts

  8. Dear Editorial, i want to add all google web fonts in this site, and then want to use in my means,

    but i dont want to use too many links in header file. any other way?

  9. Thank you so much for this post! For someone who has no formal html/css training, I was impressed with the simplicity of this post.

  10. Hi there,

    Using Genesis and the Parallax Pro theme…
    But a newb to things like php etc

    I added this code to the fuctions.php file as you insctructed:
    add_action( ‘genesis_meta’, ‘wpb_add_google_fonts’, 5);

    function wpb_add_google_fonts() {
    echo ”;
    }

    The headers that use the font above remain unchanged.

    Questions:
    1. Am I right in assuming that the code above is the only thing that I add?
    2. Where exactly should the code be added – at the beginning or end of fuctions.php?
    2. Is there anything missing from the code?
    3. Should I be adding something to the style.css file?

    Appreciate your help
    Regards
    Greg

    • Greg, seems alright to us. We think WordPress probably omitted the part from your code where you echoed font link. Yes you will need to use CSS to set style rules for selectors where you want to use your Google font.

      Admin

  11. None of the above is good enough, we all know “wp_enqueue_style( ‘google-font’)” is the “technically correct way to call a script, but in this case your <header will end up like this;

    FONT 1:
    FONT 2:
    FONT 3:
    FONT 4:

    No Good, it needs to be like this:

  12. Where should i paste the above code? I could not find the last line of code anywhere in my header.php file? Can you please tell me step-wise?
    Thanks.

  13. Tried re-typing the following, and still nothing is changing;

    /* Import Fonts
    ———————————————————— */

    add_action( ‘genesis_meta’, ‘wpb_add_google_fonts’, 5);

    function wpb_add_google_fonts () {
    echo ‘’;
    }

    /* Defaults

    It worked the first time. I’m so confused!
    Thanks for your help.

  14. Hi,

    I was so proud of myself for copying the code and changing the font which, I found too large for my site. When I tried to change it to something else, I must have mixed something up, and only one font style continues to show, even when I play about with the codes. Feeling like a dunce now – I don’t talk tech. Can anyone help me? I’ve done it with and without the numbers in case they’re not actually part of it. Thanks. This is the latest that I entered…..

    /* Import Fonts
    ———————————————————— */

    1 add_action( ‘genesis_meta’, ‘wpb_add_google_fonts’, 5);
    2
    3 function wpb_add_google_fonts() {
    4 echo ”;
    5 }

    /* Defaults
    ———————————————————— */

  15. How can you use multiple Google Fonts in the functions.php ?

    I had this:

    //* Enqueue Google fonts
    add_action( 'wp_enqueue_scripts', 'executive_google_fonts' );
    function executive_google_fonts() {
    	wp_enqueue_style( 'google-font', '//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700', array(), CHILD_THEME_VERSION );
    	wp_enqueue_style( 'google-font', '//fonts.googleapis.com/css?family=Dancing+Script:400italic,700italic,400,700', array(), CHILD_THEME_VERSION );
    }
    
    

    But the Dancing Script wasn’t showing up font on my second computer or iPhone or tablet.
    I removed the Open Sans and it started working.

    • @Karissa, the first argument in wp_enqueue_style function is the handle for the style script you are loading. Try this code instead:

      //* Enqueue Google fonts
      add_action( 'wp_enqueue_scripts', 'executive_google_fonts' );
      function executive_google_fonts() {
      	wp_enqueue_style( 'google-font', '//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700', array(), 20131111 );
      	wp_enqueue_style( 'google-font-2', '//fonts.googleapis.com/css?family=Dancing+Script:400italic,700italic,400,700', array(), 20131111 );
      }
      

      Admin

      • Nevermind, I figured out that I needed to use a link like this:

        ‘//fonts.googleapis.com/css?family=Euphoria+Script|Rouge+Script|Montez|Federo|Great+Vibes|Clicker+Script|Dancing+Script:400,700|Satisfy|Ruthie|Rochester|Open+Sans|Open+Sans+Condensed:300’

      • Ahh I see, I replied above before refreshing the page and seeing your reply.

        By using the link Google gives when you have multiple fonts selected, it produces it like that and you can more easily try out different fonts live on site.

  16. Thank you so much!! Whenever I need any WordPress help, I come directly to wpbeginner as I know I would find a best solution here. You guys don’t know how much you have helped beginners like me, Appreciate you support :)
    Long Live WPBeginner…

    Cheers,
    Chaitanya

    • yeah way too much work on each method here and there shouldn’t be a need to add anything to the style sheet find a plugin

  17. Something I missed here were the conditional comments to make Google’s webfonts work in IE8 and below if you request more than one font weight. For example:

    <link href=”http://fonts.googleapis.com/css?family=Cabin:400,700″ rel=”stylesheet” type=”text/css” />

    That’s why I created a function for loading fonts: https://github.com/mzilverberg/LoadGoogleWebfonts

    My script also places the appropriate fallback urls within a conditional comment.
    With a few lines of code you could also make this work in functions.php in your WordPress theme.

      • To maintain WYSIWYG in the admin content editor. So that I see the same font face in the admin editor as on my web site.

        • I was actually wondering how to do the same thing (and this is the first result that popped up on Google).

          I know plug-ins exist to add Google Webfonts functionality to the WYSIWYG editor, but they bog it down like crazy. I’m going to look into it further and see if there’s an easy way to add a font or two.

  18. Thanx a lot for sharing, I’m really happy with this. I’m a Genesis user and started using @import because it’s alraedy being done in the stylesheet. Feel much better about this solution.
    Happy 2013!

  19. In your code do I replace “YOUR THEME STYLESHEET” with something??
    mine is STYLE.CSS, or does it need to be a URL ??
    thanks,
    Jeff

  20. This is what I use…..

    Add this to your theme’s functions.php file:

    /*----------------------------------*/
    /* Load CSS Files
    /*----------------------------------*/	
    	if(!function_exists('load_theme_styles'))
    	{
    		function load_theme_styles()
    		{		
    			if (!is_admin()) {
    				
    				$cssURL = get_template_directory_uri().'/css/';
    				$fontURL = 'http://fonts.googleapis.com/css?family=Lora|Oswald';
    				
    				// Registering New Styles	
    				wp_register_style('googleFont', $fontURL);					
    				wp_register_style('style', $cssURL.'/style.css', 'googleFont', '1.0', 'screen');
    				wp_register_style('print', $cssURL.'/print.css', 'googleFont', '1.0', 'print');
    				
    				// Enqueing Styles
    				wp_enqueue_style('googleFont');	
    				wp_enqueue_style('style');
    				wp_enqueue_style('print');			
    				
    			}
    		}
    	}
    	add_action('wp_enqueue_style', 'load_theme_styles');
    

    What do you think about this?

  21. Great article! I think it would be pretty cool if wordpress, by default, had Google Fonts included into it, but this seems easy enough. Thanks for explaining!

    • Google Fonts are great, but not everyone uses it (considering the amount of folks who use WordPress). WordPress has a 95% rule. If the feature would not satisfy 95% of the audience, then it is usually falls in the plugins category. However, sometimes exceptions are made. We can assure you that the Core WP team, will not make this into an exception though :)

      Admin

  22. You rock man! Just what I was looking for! Thanks for putting up this post… I searched forever trying to find something about adding this to my theme. Glad I stumbled across your page.

  23. Great post and even if their is a plug-in to do this, it’s always better to learn the non – plugin way also.

  24. So obviously you dont accept using the several Google font plugins. I am going to have to revisit my css files in that case.

  25. i dont understand the second part which is adding font to the genesis add action thing.. is that another method to add in google web font?

    and i know we dont have to incld all styles of the font, but the recommended method, which is http://fonts.googleapis.com/css?family=Lora|Oswald

    just for instance, what if i only want bold style for lora and light style for oswald, then how to combine the font styles?

    thanks

  26. great tutorial…i actually use the wp google fonts plugin…would you recommend that plugin or doing the manual way as described above..which is efficient performance wise?

        • Avoiding the google fonts plugin because it is a plugin is not a good reason at all. Using the plugin actually provides you with much more flexibility than including it in your theme, especially if you ever choose to change themes.

        • As far as I’m concerned, fonts in most cases are considered stylistic elements thus theme based, and they usually change when you switch to a different theme.

    • Konstantin, I totally agree with you. wp_enqueue_style function should always be used. That is what I tried doing first as suggested by Nathan Rice, in StudioPress’s article about Google Fonts. Except Google clearly states, that the font styles should be loaded before anything else. Using wp_enqueue_style and then printing them using wp_print_styles, this was printing the item after the main stylesheet was already loaded. That was the reason why I had to hook into genesis_meta() hook. Anyways, totally agree with your thoughts on your article.

      Admin

      • I’m a little late to this, but I wanted to mention that you could still use wp_enqueue_style, just set the priority higher so that they are loaded first :)

    • Great tutorial. One observation though: first image in the article was meant to show the @import tab, wasn’t it?

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.