WordPressのテーマ作成(応用編その1)
■WordPressのテーマ作成(基礎編)よりも現実のサイトに近いテーマの作成方法
「メニュー」、「アイキャッチ画像」、「個別の投稿記事」、「404エラーページ」の設定を中心に解説する
基礎編同様に環境はWindowsのローカル開発環境
WordPressのテーマ作成(基礎編)はこちら → WordPressのテーマ作成(基本編)
①下記ファイルを格納した「wp_test_ver2」を用意し、WordPressの「Themes」フォルダ直下に格納
・header.php
・index.php
・footer.php
・style.css
・functions.php
【header.php】
<!-- header.php -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>title</title>
<?php wp_head(); ?>
</head>
<body>
<div id="header">
<div class="container">
<div class="menu_box">
<!-- メニュー記述箇所 -->
</div>
</div>
</div>
【index.php】
<!-- index.php -->
<?php get_header(); ?>
<div id="main">
<div class="container">
<!-- メイン処理記述箇所 -->
</div>
</div>
<?php get_footer(); ?>
【footer.php】
<!-- footer.php -->
<div id="footer">
<div class="container">
<!-- コピーライト記述箇所 -->
</div>
</div>
<?php wp_footer(); ?>
</body>
</html>
【functions.php】
<!-- functions.php -->
<?php
//CSSの呼び出し
function load_stylesheet() {
wp_enqueue_style('style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'load_stylesheet');
【style.css】
/* style.css */
/*
Theme Name: wp_test_ver2
Theme URI: 192.168.33.10
Author: dbuser
Author URI: 192.168.33.10
Description: WordPress
Version: 1.0
*/
body {
font-size: 14px;
}
②テーマを有効化
③カテゴリー作成
管理画面の「投稿」⇒「カテゴリー」を押下し、任意のカテゴリー名を入力して「新規カテゴリーを追加」を押下
※ここではカテゴリー名に「海外旅行」と「国内旅行」を追加している
④固定ページ作成
管理画面の「固定ページ」⇒「新規追加」を押下し、タイトルと内容を入力して「公開」を押下
⑤メニューの作成
WordPressの管理画面からメニューを編集できるようにする為に「functions.php」に「add_theme_support(‘menus’);」の記述を追加
<!-- functions.php -->
<?php
//CSSの呼び出し
function load_stylesheet() {
wp_enqueue_style('style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'load_stylesheet');
//管理画面にメニューを表示
add_theme_support('menus');
「外観」内に「メニュー」が表示される
「メニュー」を押下し、メニュー画面で任意の名前でメニューを作成
④で作成した固定ページをメニューに追加
③でカテゴリーをメニューに追加
カスタムリンクでホーム(URL:192.168.33.10)を作成し、ドラッグして「会社概要」の上に移動後、「メニューを保存」を押下
「header.php」に作成したメニューを呼び出す為に「<?php wp_nav_menu(); ?>」を記述する
<!-- header.php -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>title;</title>
</head>
<body>
<div id="header">
<div class="container">
<div class="menu_box">
<!-- メニューを呼び出す -->
<?php wp_nav_menu(); ?>
</div>
</div>
</div>
style.cssでスタイルを整えた後のサイト
⑥アイキャッチ画像画像を表示
「themes」フォルダと同じ階層に「uploads」フォルダを作成する(パーミッションは777)
WordPressの管理画面からアイキャッチ画像を設定できるようにする為に「functions.php」に「add_theme_support(‘post-thumbnails’);」の記述を追加
<!-- functions.php -->
<?php
//CSSの呼び出し
function load_stylesheet() {
wp_enqueue_style('style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'load_stylesheet');
//管理画面にメニューを表示
add_theme_support('menus');
//管理画面にアイキャッチ画像の設定を表示し、そのページのリンクを貼る
add_theme_support('post-thumbnails');
投稿画面の右下にアイキャッチ画像の設定メニューが表示されるので、アイキャッチ画像を設定して投稿記事を作成
「the_post_thumbnail(array(横幅, 縦幅));」でアイキャッチ画像を表示
<!-- index.php -->
<?php get_header(); ?>
<div id="main">
<div class="container">
<!-- WordPressの決まり文句 -->
<?php
if (have_posts()):
while (have_posts()):
the_post();
?>
<div class="posts">
<!-- タイトルを表示 -->
<h2><?php the_title(); ?></h2>
<div class="thumbnail">
<!-- リンク付きでアイキャッチ画像を表示 -->
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(300,150)); ?></a>
</div>
<div class="post">
<!-- 投稿記事の一部を表示 -->
<?php the_excerpt();?>
</div>
</div>
<?php
endwhile;
endif;
?>
</div>
</div>
<?php get_footer(); ?>
style.cssでスタイルを整えた後のサイト
⑦個別の投稿記事を表示
「index.php」のベースに「single.php」を作成
アイキャッチ画像部分は削除し、「the_excerpt();」を「the_content();」に変更
その他、クラス名を適宜変更
<!-- single.php -->
<?php get_header(); ?>
<div id="main">
<div class="container">
<!-- WordPressの決まり文句 -->
<?php
if (have_posts()):
while (have_posts()):
the_post();
?>
<!-- タイトルを表示 -->
<h2><?php the_title(); ?></h2>
<div class="post_single">
<!-- 投稿記事を表示 -->
<?php the_content();?>
</div>
<?php
endwhile;
endif;
?>
</div>
</div>
<?php get_footer(); ?>
style.cssでスタイルを整えた後のサイト
アイキャッチ画像を押下して個別の投稿記事を表示
⑧該当ページが無い場合、404エラーページに遷移する設定をする
「themes」フォルダ内に「404.php」ファイルを作成し、格納
【404.php】
<!-- 404.php -->
<?php get_header(); ?>
<div id="main">
<div class="container">
<div class="not_found">
<h3>該当のページは存在しません</h3>
<div class="return_home">
<a href="<?php echo home_url(); ?>">トップページに戻る</a>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
スタイルを整えて完成