【WordPress制作】BootStrapをWordPressで立ち上げてみよう

(サムネイル)

今回は、Start BootStrap というhtml,cssテンプレートをダウンロードしてwordpressで管理してみましょう。

wordpressの開発には local by FlyWheel が便利です。自分のパソコンをサーバーにしてサイト開発ができます。

左下の+ボタンから Create A Siteをクリック。

サイト名、user名(メアドでok),パスワードを入力して登録。

登録したユーザー名とパスワードでadmin(管理画面)が開けます。 これで、管理画面を作ることができました。

次にStart Bootstrapから(簡単なテンプレート)を Free Downloadします。

これで、テンプレートがダウンロードできました。

では、いよいよダウンロードしたテンプレートをWordPressで表示させてみましょう。

local by Flywheel でディレクトリを開いて

/Local Sites/freelancepage(立ち上げたブログ名)/app/public/wp-content/themes/freelancepage

に移動します。これを、vscodeで開きます。

ファイル改造手術

まずindex.htmlをindex.phpに改名します。これで、wordpressはindex.phpを一番最初のページだとみなします。

次に、新しくstyle.cssを作ります。そこに

/*
* Theme Name: Freelance Page
* Author: Keitaro
* Description: フリーランスのホームページです
* Version: 1.0
*/

と、書きます。これでWordPressは新しいテーマだと識別します。管理画面の「外観」から確認することができます。htmlが元になったオリジナルテーマです。

(ちなみに、WPでインストールしたテーマを親テーマとして、新しくカスタマイズしたテーマを作成することもできます。詳しくは子テーマについて)

header.php

htmlファイルでは<head></head>の中に、日本語サイトであるかや、cssファイルの参照など、使いまわしたいファイルの基本情報を書いています。これは、どのページでも共通して使う要素なので、使い回しできるようにしましょう。

新しくheader.phpをホームディレクトリに作ります。

index.phpに<head>タグがあります。その、headタグを除いた中身全てをheader.phpに移します。

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<!-- <title>Creative - Start Bootstrap Theme</title> funcに書いてるのでいらない-->
<!-- Favicon-->
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
<!-- Bootstrap Icons-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css" rel="stylesheet" />
<!-- Google fonts-->
<link href="https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic" rel="stylesheet" type="text/css" />
<!-- SimpleLightbox plugin CSS-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/SimpleLightbox/2.1.0/simpleLightbox.min.css" rel="stylesheet" />
<!-- Core theme CSS (includes Bootstrap)-->
<link href="<?php echo get_template_directory_uri(); ?>/css/styles.css" rel="stylesheet" />

<?php wp_head(); ?>

ポイントは、cssファイルパスをこうすることです。

<link href="<?php echo get_template_directory_uri(); ?>/css/styles.css" rel="stylesheet" />

こうすれば、headにあるcssなどの情報を他のページでも使うことができますね。

そして、index.phpのheadタグの中に、以下のコードを書いてheader.phpを呼び出します。

<head>
    <?php get_header(); ?>
</head>

こうすることで、header.phpに書かれてる内容を呼び出すことができます。

footer.php

htmlファイルでは<foot></foot>の中にJavaScriptの情報を書きます。これも、どのページでも使い回せるようにしたいですね。なので同様にfooter.phpにまとめます。

<!-- Bootstrap core JS-->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- SimpleLightbox plugin JS-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/SimpleLightbox/2.1.0/simpleLightbox.min.js"></script>
<!-- Core theme JS-->
<script src="js/scripts.js"></script>

<script src="https://cdn.startbootstrap.com/sb-forms-latest.js"></script>

<?php wp_footer(); ?>

そしてindex.phpの bodyタグの上にテンプレートタグを書きます。

    <?php get_footer(); ?>
</body>

sidebar.php

(記事作成中)

他にも共通パーツを一つのファイルにしてみましょう。

ナビゲーションバー

ホームページによくある

新しくincludesというファイルを作って、その中にheader.php を作ります。

<!-- Navigation Barの全て-->
<nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" id="mainNav">
    <div class="container px-4 px-lg-5">
        <a class="navbar-brand" href="<?php echo esc_url(home_url('/')); ?>"><?php bloginfo('name'); ?></a>
        <button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon">
            </span>
        </button>
        
        <?php
        $menu_name = 'global_nav';
        $locations = get_nav_menu_locations();
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);
        ?>
        
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ms-auto my-2 my-lg-0">
            <?php foreach ($menu_items as $item) : ?>
                <li class="nav-item">
                    <a class="nav-link" href="<?php echo esc_attr($item->url); ?>">
                    <?php echo esc_html($item->title); ?>
                    </a>
                </li>
            <?php endforeach ?>

        </div>
    </div>
</nav>

index.phpでは 表示させたい箇所に 

<?php get_template_part('includes/header'); ?>

と書けばokです。

company name

includes/footerも共通して表示させたいからパーツ化。 index.phpの表示させたい箇所に <?php get_template_part(‘includes/footer’); ?>

<!-- Footer -->
<footer class="bg-light py-5">
    <div class="container px-4 px-lg-5">
        <div class="small text-center text-muted">Copyright © 2023 - Company Name</div>
    </div>
</footer>