WordPressで外部CSSファイルやJavaScriptファイルをPHPで正しく読み込む方法を徹底解説 初心者向け完全ガイド


WordPressサイトのカスタマイズにおいて、外部CSSやJavaScriptファイルを正しく読み込むことは、デザインや機能性の向上に欠かせないステップです。適切な方法で外部ファイルを読み込むことで、サイトのパフォーマンスを最適化し、SEOにも良い影響を与えます。本記事では、初心者でも簡単に実践できる方法を具体的なコードとともに詳しく解説します。さらに、条件付き読み込みやパフォーマンス最適化のテクニックも紹介します。

外部CSSファイルを読み込む方法

WordPressでは、CSSファイルを読み込む際にwp_enqueue_style()関数を使用します。この方法は、複数のスタイルシート間での競合を防ぎ、管理を簡単にするために推奨されています。

基本的なCSSファイルの読み込み方法

以下は、テーマのfunctions.phpにCSSファイルを読み込むための基本的なコード例です。

function my_enqueue_styles() {
    wp_enqueue_style('main-style', get_template_directory_uri() . '/style.css', array(), false, 'all');
    wp_enqueue_style('reset-style', get_template_directory_uri() . '/css/reset.css', array(), null, 'all');
}
add_action('wp_enqueue_scripts', 'my_enqueue_styles');

コードの詳細説明

ハンドル名: ‘main-style’や’reset-style’はスタイルシートを識別するための一意の名前です。他のスタイルやスクリプトと競合しないようにします。

パス: get_template_directory_uri()は現在のテーマのURLを動的に取得します。/style.cssなどのパスを結合して指定します。

依存関係: 第三引数で他のスタイルシートに依存する場合、そのハンドル名を指定します。

バージョン: falseまたは特定のバージョン番号を指定することでキャッシュを制御します。

メディア属性: ‘all’を指定するとすべてのメディアタイプに適用されます。特定のデバイス用に設定することも可能です(例:’screen’、’print’)。

さらに具体的な例:Google Fontsの読み込み

外部リソースからフォントを読み込む場合も同様にwp_enqueue_style()を使用します。

function enqueue_google_fonts() {
    wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap', array(), null);
}
add_action('wp_enqueue_scripts', 'enqueue_google_fonts');


このコードを追加することで、Google Fontsの「Roboto」フォントを簡単に導入できます。

外部JavaScriptファイルを読み込む方法

JavaScriptファイルの読み込みにはwp_enqueue_script()関数を使用します。この方法を使えば、WordPressの既存スクリプトとの競合を防ぎつつ、スクリプトを効率的に管理できます。

基本的なJavaScriptファイルの読み込み方法

functions.phpに以下のコードを追加します。

function add_custom_scripts() {
    wp_enqueue_script('main-script', get_template_directory_uri() . '/js/main.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'add_custom_scripts');

コードの詳細説明

ハンドル名: ‘main-script’はスクリプトを識別するための名前です。

パス: get_template_directory_uri()を使用してスクリプトファイルのパスを指定します。

依存関係: array(‘jquery’)はjQueryに依存することを示しています。他のスクリプトも依存関係として指定できます。

バージョン: キャッシュ管理のためにバージョンを設定します。nullの場合、バージョンは指定されません。

フッター読み込み: trueを指定すると、スクリプトが</body>タグの直前に読み込まれ、ページの読み込み速度が向上します。

具体例:スムーズスクロール機能の追加

以下のスクリプトを読み込むことで、ページ内リンクのスムーズスクロールを実現できます。

document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function(e) {
        e.preventDefault();
        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth'
        });
    });
});


これをmain.jsとして保存し、上記のコードを使って読み込みます。

特定のページでのみファイルを読み込む方法

すべてのページでスクリプトやスタイルを読み込む必要がない場合、条件付きで読み込むことでパフォーマンスを向上させることができます。

function add_conditional_scripts() {
    if (is_page('contact')) {
        wp_enqueue_script('contact-script', get_template_directory_uri() . '/js/contact.js', array(), null, true);
    }
}
add_action('wp_enqueue_scripts', 'add_conditional_scripts');


このコードでは、「contact」というスラッグのページでのみcontact.jsを読み込みます。

非同期・遅延読み込みでパフォーマンスを最適化

ページのパフォーマンスを向上させるために、スクリプトの非同期または遅延読み込みを設定することが可能です。

非同期読み込みの実装

以下のコードをfunctions.phpに追加します。

function add_async_attribute($tag, $handle) {
    if ('main-script' !== $handle) {
        return $tag;
    }
    return str_replace(' src', ' async="async" src', $tag);
}
add_filter('script_loader_tag', 'add_async_attribute', 10, 2);


このコードにより、main-scriptというハンドルで登録されたスクリプトが非同期で読み込まれるようになります。

依存関係を正しく設定してエラーを防止

スクリプト間の依存関係を正しく設定することで、読み込み順のエラーを防止できます。

例:複数のスクリプトの依存関係

以下のコードでは、custom-scriptがjqueryとbootstrapに依存しています。

function enqueue_dependent_scripts() {
    wp_enqueue_script('bootstrap', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js', array('jquery'), '4.5.2', true);
    wp_enqueue_script('custom-script', get_template_directory_uri() . '/js/custom.js', array('jquery', 'bootstrap'), null, true);
}
add_action('wp_enqueue_scripts', 'enqueue_dependent_scripts');

これにより、スクリプトの読み込みエラーを回避し、スムーズな動作を保証できます。

まとめ

WordPressで外部CSSファイルやJavaScriptファイルを読み込む際には、wp_enqueue_style()とwp_enqueue_script()を正しく活用することが重要です。これらの関数を使用することで、競合を避けながら効率的に外部リソースを管理できます。また、条件付き読み込みや非同期読み込みを活用することで、サイトのパフォーマンスをさらに向上させることが可能です。この記事を参考に、自分のサイトに最適な方法で外部ファイルを読み込み、SEOとユーザーエクスペリエンスを強化してください。

(Visited 3 times, 1 visits today)