177行目: | 177行目: | ||
# index.php | # index.php | ||
</div> | </div> | ||
==テーマの機能ファイル - function.php== | |||
function.php はテーマに機能を実装させるためのテンプレートファイル。タイトル機能、スタイルシート機能、メニュー機能、ウィジェット機能など、様々な機能を実装させることができる。 | |||
あくまでも PHP の機能として実装されるため、function.php の先頭行は <?php を記述。 | |||
===タイトル機能を実装=== | |||
HTML文書に titleタグを追加する。下記の例はサイトディスクリプションは非表示。プラグイン「All In One SEO Pack」を導入しても良い。 | |||
add_theme_support( 'title-tag' ); | |||
function wp_document_title_parts ( $title ) { | |||
if ( is_home() || is_front_page() ) { | |||
unset( $title['tagline'] ); | |||
} | |||
return $title; | |||
} | |||
add_filter( 'document_title_parts', 'wp_document_title_parts', 10, 1 ); | |||
===スタイルシート機能を実装=== | |||
function theme_name_scripts() { | |||
wp_enqueue_style( 'my-stylesheet', get_stylesheet_uri() ); | |||
} | |||
add_action( 'wp_enqueue_scripts', 'theme_name_scripts' ); | |||
* WordPress ではスタイルシートは上記のように function.php で指定することが推奨 |
2019年2月21日 (木) 15:34時点における版
テーマの主な構成部品
WrodPressサイト
テンプレートファイルのセット + データベースのデータ
テンプレートファイル
テーマは「テンプレートファイル」と呼ばれる以下のようなファイル群で構成され、wp-content/themes/your_themeディレクトリ内に格納される。
style.css
- サイトのスタイルシート
- 冒頭にコメントとしてテーマ詳細を書くと管理画面のテーマ一覧に表示されるようになる
- ただし、ファイルの一番先頭は @charset
@charset "UTF-8"; /* Theme Name: hoge Theme URI: https://hoge.com/themes/hoge Author: hoge Author URI: https://hoge Description: hoge hoge. Version: 1.0 License: GNU General Public License v2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Tags: hoge, hoge Text Domain: twentythirteen Use it to make something cool, have fun, and share what you've learned with others. */
screenshot.png
- テーマ一覧に画像で表示されるようになる。JPEG, GIF でも可。推奨サイズは 880×660
function.php
- テーマに関するあらゆる機能の実装を指定
- サイト生成時に読み込まれる
- 基本的にはメニュー機能、ウィジット機能を実装すべき
- 基本的にプラグインと同じ動作。記述方法はプラグイン制作がそのまま参考になる
header.php
- サイトのヘッダ部分を生成
- <head>内には以下のように記述できる
<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <title><?php wp_title(); ?></title> <link rel="profile" href="http://gmpg.org/xfn/11" /> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" /> <?php if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); ?> <?php wp_head(); ?> </head>
- wp_titleタグは使えない。代わりに wp_get_document_title機能が使える
- bloginfo('charset') は基本的に UTF-8 がセットされる
- header.php にはスタイルシートはリンクしない
- wp_headタグはプラグインがコードを挿入する場所
sidebar.php
- サイトのサイドバー部分を生成
- サブメニューはドロップダウン推奨
- サイトのフッタ部分を生成
- wp_footerタグは </body> の直前に挿入
index.php
- トップページを生成
- ページングのために wp_link_pagesタグを記述
- 基本的には以下のようにしてヘッダやフッタを取り込む
<?php get_header(); ?> <?php get_sidebar(); ?> <?php get_footer(); ?>
page.php
- 固定ページを生成
- ページングのために wp_link_pagesタグを記述
- 日付、タグ、カテゴリー、著者などのメタデータは表示しない
single.php
- 記事ページを生成
- ページングのために wp_link_pagesタグを記述
- 日付と時刻を表示させるために the_time( get_option( 'date_format' ) ) を使う
- 適切であればタグ、カテゴリー、著者などのメタデータを表示させる
- previous_post_linkタグと next_post_linkタグでページング
archive.php
- アーカイブページを生成
- ページングのために wp_link_pagesタグを記述
comments.php
- コメントページを生成
- 著者のコメントのデザインを目立たせて一般ユーザと区別する
- 適切であれば Gravatar を表示させる
- スレッド形式に対応させる
searchform.php
- 検索フォームを生成
search.php
- 検索結果ページを生成
- 検索された語句を冒頭に表示する
- 検索結果ページにも引き続き検索ウィンドウを表示する
<h2><?php printf( __( 'Search Results for: %s' ), '<span>' . get_search_query() . '</span>'); ?></h2>
JavaScript
- JavaScript はできるだけ外部ファイル化
- スクリプトのロードには wp_enqueue_scriptタグを使う
テンプレート優先順位
WordPress は受け取ったクエリ(URLなどと一緒にサーバに渡されるパラメータ)によって、利用するテンプレートファイルを決定する。以下はその利用順序
トップページ
- home.php
- index.php
記事ページ
- single-{post_type}.php
- single.php
- singlar.php
- index.php
固定ページ
- page-{slug}.php
- page-{id}.php
- page.php
- singlar.php
- index.php
カテゴリーページ
- category-{slug}.php
- category-{id}.php
- category.php
- archive.php
- index.php
タグページ
- tag-{slug}.php
- tag-{id}.php
- tag.php
- archive.php
- index.php
カスタム投稿ページ
- archive-{post_type}.php
- archive.php
- index.php
カスタム分類ページ
- taxonomy-{taxonomy}-{term}.php
- taxonomy-{taxonomy}.php
- taxonomy.php
- archive.php
- index.php
著者ページ
- author-{name}.php
- author-{id}.php
- author.php
- archive.php
- index.php
日付ページ
- date.php
- archive.php
- index.php
検索結果ページ
- search.php
- index.php
404ページ
- 404.php
- index.php
テーマの機能ファイル - function.php
function.php はテーマに機能を実装させるためのテンプレートファイル。タイトル機能、スタイルシート機能、メニュー機能、ウィジェット機能など、様々な機能を実装させることができる。
あくまでも PHP の機能として実装されるため、function.php の先頭行は <?php を記述。
タイトル機能を実装
HTML文書に titleタグを追加する。下記の例はサイトディスクリプションは非表示。プラグイン「All In One SEO Pack」を導入しても良い。
add_theme_support( 'title-tag' ); function wp_document_title_parts ( $title ) { if ( is_home() || is_front_page() ) { unset( $title['tagline'] ); } return $title; } add_filter( 'document_title_parts', 'wp_document_title_parts', 10, 1 );
スタイルシート機能を実装
function theme_name_scripts() { wp_enqueue_style( 'my-stylesheet', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
* WordPress ではスタイルシートは上記のように function.php で指定することが推奨