WordPress でオリジナルテーマを作る【functions.php】編

functions.php は 「<?php」 から始まります。下記事例のコードなど、追記したいコードをその後に書き込みます。

閉じタグ「?>」は必要ありません。

wp_get_document_title

WordPress4.4から登場した新しい関数 ‘wp_get_document_title’ を使用することがよいでしょう。この関数をfunctions.phpに記入するとheader.phpに<title>は記入する必要はありません。
functions.php を編集します。functions.php に以下のコードを追記します。

//titleの設定
add_theme_support( 'title-tag' );
function wp_document_title_separator( $separator ) {
$separator = '|';
return $separator;
}
add_filter( 'document_title_separator', 'wp_document_title_separator' );
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 );

詳しくは以下の記事を参照してください。

register_sidebar();

作成後の運用時の利便性を考えて、管理画面のウィジェットを利用してサイドメニューを管理できるようなサイドバーを作成します。

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

//サイドバーにウィジェット追加
function widgetsidebar_init() {
register_sidebar(array(
'name'=>'サイドバー',
'id' => 'side-widget',
'before_widget'=>'
<div id="%1$s" class="%2$s sidebar-wrapper">',
'after_widget'=>'</div>',
'before_title' => '<h5 class="sidebar-title">',
'after_title' => '</h5>'
));
}
add_action( 'widgets_init', 'widgetsidebar_init' );

//フッターにウィジェット追加
$sidebars = array(1, 2, 3);
foreach($sidebars as $number) {
register_sidebar(array(
'name' => 'Footer ' . $number,
'id' => 'footer ' . $number,
'before_widget' => '<div id="%1$s" class="%2$s footer-wrapper">',
'after_widget' => '</div>',
'before_title' => '<h5 class="footer-title">',
'after_title' => '</h5>'
));
}

詳しくは以下の記事を参照してください。

wp_enqueue_script();

javascriptなどfunctions.phpで読み込みを指示します。

javascriptの読み込み

//javascript読み込み
function my_scripts() {
wp_enqueue_script( 'javascript',get_template_directory_uri().'/js/javascript.js');
}
add_action( 'wp_enqueue_scripts', 'my_scripts' );

jqueryとjavascriptの読み込み

//jqueryとjavascript読み込み
function my_scripts() {
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'javascript',get_template_directory_uri().'/js/javascript.js',array('jquery'));
}
add_action( 'wp_enqueue_scripts', 'my_scripts' );

register_nav_menus();

カスタムメニューを使うには、register_nav_menu関数をfunctions.phpに記述する必要があります。

カスタムメニューを一か所登録

register_nav_menu(‘メニューの位置’,’メニューの説明’); のように指定するとメニューを一か所で利用できます。

// カスタムメニューを設定
function add_custom_menu(){
register_nav_menu('main-menu','メインメニュー');
}
add_action('after_setup_theme','add_custom_menu');

複数のカスタムメニューを使う

グローバル・ナビゲーションのほかに、サブ・ナビゲーションをサイドバーに表示する場合など、複数のカスタムメニューを使い分けたいなら、register_nav_menus関数を使います。

// カスタムメニューを設定
function add_custom_menu(){
register_nav_menus(array(
'main-menu' => 'メインメニュー',
'sub-menu' => 'サブメニュー'
));
}
add_action('after_setup_theme','add_custom_menu');

表示させたい場所にコードを追加

<?php
wp_nav_menu(array(
'theme_location' => 'main-menu'
));
?>