IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / genesis / WordPress:Genesis Framework を使ったテーマ制作(2)

WordPress:Genesis Framework を使ったテーマ制作(2)

2022/03/24 genesis, Wordpress

「WordPress:Genesis Framework を使ったテーマ制作」の2回目です。

  • WordPress:Genesis Framework を使ったテーマ制作(1)

  • functions.php
  • init.php の読み込みは必要か?
  • Setup Function に何を入れるか?
  • Setup Function の書き方

functions.php

functions.php は、デフォルトの WordPress に独自の機能を追加したり、デフォルトの機能を変更したりするための PHP ファイルです。子テーマの場合は、同じく親テーマの機能に追加変更をすることができます。

たとえば、genesis Sample Theme は次のように始まっています。

<?php
/**
 * Genesis Sample.
 *
 * This file adds functions to the Genesis Sample Theme.
 *
 * @package Genesis Sample
 * @author  StudioPress
 * @license GPL-2.0-or-later
 * @link    https://www.studiopress.com/
 */


// Starts the engine.
require_once get_template_directory() . '/lib/init.php';

コメント行にファイル情報があり、続いて親テーマ Genesis の /lib/init.php が読み込まれています。ファイル情報はなくても機能しますが、後々のためには書いておいたほうがいいでしょう。

たとえば、

<?php
/**
 * Genesis Child Theme.
 *
 * @package Genesis Child
 * @author  IMUZA.com
 * @license GPL-2.0-or-later
 * @link    https://imuza.com/
 */

こんな感じです。

init.php の読み込みは必要か?

この require_once get_template_directory() . '/lib/init.php'; の一行は、多くの Genesis の子テーマに入っていますが必須のものではないようです。

Gary Jones さんが書いています。

この一行は Genesis のすべての関数を呼び出しており、以後それらが定義されているかどうかを心配することがないという点ではメリットがあるが、果たしてそれは必要かと疑問を呈し、代替案を提示しています。

<?php


add_action( 'genesis_setup', 'utility_pro_setup', 15 );
/**
 * Theme setup.
 *
 * Attach all of the site-wide functions to the correct hooks and filters. All
 * the functions themselves are defined below this setup function.
 *
 * @since 1.0.0
 */
function utility_pro_setup() { }

代替案は、init.php の最後の行にある Setup Function を直接呼び出すということで、具体的なサンプルコード(CarrieDilsによるUtilityPro )が掲載されています。

  • Be Like Bill – How To Start The Engine Like A Genesis Expert • Gary Jones

その解説がその後に続くのですが、これが非常に難しいです。漠然とですが理解できる範囲ではこの代替案で問題はなく、また、この記事は WordPress の開発者のひとりであり、Genesis の開発者でもある Bill Erickson さんのサイトにも引用されていますので、これでいいのではないかと思います。

  • Don't "start the engine" in your Genesis child theme – Bill Erickson

Setup Function に何を入れるか?

この Setup Function に何を入れるかですが、add_action() や add_filter() はこの関数の外に書くべきであり、次のものはこの関数内に書いていいようです。

  • remove_action() や remove_filter()
  • add_image_size() や add_theme_support()

ということで上記リンク先にあるサンプルコード(CarrieDilsによるUtilityPro )から必要なものをピックアップすればいいと思います。

Setup Function の書き方

Theme Support になにが指定できるかは次のドキュメントにあります。

WordPress 標準の Theme Support

  • 関数リファレンス/add theme support – WordPress Codex 日本語版

  • add_theme_support() | Function | WordPress Developer Resources

Genesis で追加される Theme Support

  • Genesis Theme Support | Genesis Developer Docs

ということで、この Setup Function でスタートしてみましょう。

<?php
/**
 * Genesis Child Theme.
 *
 * @package Genesis Child
 * @author  IMUZA.com
 * @license GPL-2.0-or-later
 * @link    https://imuza.com/
 */


add_action( 'genesis_setup', 'custom_setup', 15 );
/**
 * Theme setup.
 */
function custom_setup() {


  // Define theme constants.
  define( 'CHILD_THEME_NAME', 'genesis-child' );
  define( 'CHILD_THEME_URL', '' );
  define( 'CHILD_THEME_VERSION', '1.0.0' );


  // Add HTML5 markup structure.
  add_theme_support( 'html5', array( 'caption', 'comment-form', 'comment-list', 'gallery', 'search-form' ) );


  // Add viewport meta tag for mobile browsers.
  add_theme_support( 'genesis-responsive-viewport' );


  // Add theme support for accessibility.
  add_theme_support( 'genesis-accessibility', array(
    '404-page',
    'drop-down-menu',
    'headings',
    'rems',
    'search-form',
    'skip-links',
  ) );


  // Add support for three footer widget areas.
  add_theme_support( 'genesis-footer-widgets', 3 );


  // Unregister layouts that use secondary sidebar.
  genesis_unregister_layout( 'content-sidebar-sidebar' );
  genesis_unregister_layout( 'sidebar-content-sidebar' );
  genesis_unregister_layout( 'sidebar-sidebar-content' );


  // Removes header right widget area.
  unregister_sidebar( 'header-right' );


  // Unregister secondary sidebar.
  unregister_sidebar( 'sidebar-alt' );


 }

次はサンプルデータを入れて実際にサイトを構築していこうと思います。

[Amazon限定ブランド] キリン LAKURASHI アルカリイオンの水 PET (2L×9本)

[Amazon限定ブランド] キリン LAKURASHI アルカリイオンの水 PET (2L×9本)

  • LAKURASHI(ラクラシ)

Amazon

WordPress:Genesis Framework を使ったテーマ制作(1)
WordPress:Genesis Framework を使ったテーマ制作(3)
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

2023/02/8

WordPress:人気記事を直近の期間指定で表示する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress65
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com