WordPress twentyseventeen の function.php を見る – その2
公開日:
:
PHP, WordPress, wordpress テンプレート

前回の続きです。
次のスターターコンテンツは、今回のシンプルテンプレートには不要ですが、よくわかってなかったので、ちょっと詳しく見てみました。
スターターコンテンツ starter-content
スターターコンテンツの設定は、4.7以降の twentyseventeen から使えるみたいです。

スターターコンテンツは、ワードプレス新規インストールで、外観>カスタマイズ>公開ボタン を押すと反映されます。
$starter_content = array( 'widgets' => array(・・・(省略)・・・),//ウィジェット 'posts' => array(・・・(省略)・・・),//自動で作られる固定ページのサムネイルの画像の設定です。 'attachments' => array(・・・(省略)・・・),//サムネイルの画像の具体的なパス 'options' => array(・・・(省略)・・・),//オプション 'theme_mods' => array(・・・(省略)・・・),//トップページの表示順番 'nav_menus' => array(・・・(省略)・・・),//ナビゲーション ); $starter_content = apply_filters( 'twentyseventeen_starter_content', $starter_content ); add_theme_support( 'starter-content', $starter_content );
上記で省略したウィジェットの所のソースを見てみます。
'widgets' => array( // Place three core-defined widgets in the sidebar area. 'sidebar-1' => array( 'text_business_info', 'search', 'text_about', ), // Add the core-defined business info widget to the footer 1 area. 'sidebar-2' => array( 'text_business_info', ), // Put two core-defined widgets in the footer 2 area. 'sidebar-3' => array( 'text_about', 'search', ), ),
外観>カスタマイズ>ウィジェットを見てみると、この3つが既に設定されています。
ライブプレビューのナビゲーションメニューのブログを押して、ブログページを見てみると、sidebar-1 も表示されています。
スターターコンテンツが表示しない場合
このスターターコンテンツは、新規で4.7以降をインストールしないと動きません。
何かを更新しても消えてしまいます。
例えば記事を何か投稿したとたん動かなくなります。
既存の WordPress を4.7以降にバージョンアップしてもスターターコンテンツは反映されていません。
スターターコンテンツは、 optionフィールドの fresh_site が有効(値:1)だと動くようにとなっています。
(DBでいうと、wp_options テーブルの fresh_site が0だと動きません。)
fresh_site が有効かどうか確認するには、function.php の一番上のところでもいいので、以下を入れて確認してみるとはやいかもしれません。
echo get_option( 'fresh_site' );exit;
サイトにアクセスして、0 が表示されてる場合、スターターコンテンツは動きません。
全てをインストールし直せばもちろん fresh_site は 1 になりますが、0 の状態からスターターコンテンツを試してみたい場合は、function.php に以下を書けば、一応有効が試せます。
update_option('fresh_site',1);
一度公開ボタンを押してスターターコンテンツを有効にしてしまうと、固定ページも作られてしまうので、function.php をいじりたい時は、この固定ページも削除してからやればさらに反映される所も増えるかと思います。
ただ、fresh_site でわざわざ分岐をしているということは、何か不具合が起こる可能性があるということです。
DBもリセットしなくてはいけない可能性もあるので、新規インストール時以外は、注意も必要です。
スターターコンテンツを定義している wp-includes/theme.php の get_theme_starter_content() を見て、デフォルトで定義してあるものをまとめてメモしておきます。
スターターコンテンツ widgets デフォルト定義
| text_business_info | 会社概要(テキストエリアで、アクセスなどの会社概要を入力出来るようになっている。) |
|---|---|
| text_about | このサイトについて(テキストエリアで、このサイトについてなどのテキスト情報を入力出来るようになっている。) |
| archives | アーカイブ(タイトルのみを入力) |
| calendar | カレンダー(タイトルのみを入力) |
| categories | カテゴリ(タイトルのみを入力) |
| meta | メタ(タイトルのみを入力) |
| recent-comments | 最近のコメント(タイトルのみを入力) |
| recent-posts | 最近の投稿(タイトルのみを入力) |
| search | 検索(タイトルのみを入力) |
スターターコンテンツ nav_menus デフォルト定義
| link_home | ホーム |
|---|---|
| page_home | ページ |
| page_about | 会社概要 |
| page_blog | ブログ |
| page_news | ニュース |
| page_contact | お問い合わせ |
| link_email | イーメール |
| link_facebook | SNS:フェイスブック |
| link_foursquare | SNS:フォースクエア |
| link_github | SNS:ギットハブ |
| link_instagram | SNS:インスタ |
| link_linkedin | SNS:リンクトイン |
| link_pinterest | SNS:ピンタレスト |
| link_twitter | SNS:ツイッター |
| link_yelp | ローカルビジネスレビューサイト:イェルプ |
| link_youtube | ユーチューブ |
スターターコンテンツ posts デフォルト定義
| home | ホーム |
|---|---|
| about | 会社概要 |
| contact | お問い合わせ |
| blog | ブログ |
| news | ニュース |
| homepage-section | ホームページセクション |
抜粋文表示 excerpt_more フックなど
ここからは、またざっくりメモしておきます。
コンテツ幅の設定
function twentyseventeen_content_width() {
・・・(省略)・・・
}
add_action( 'template_redirect', 'twentyseventeen_content_width', 0 );
コンテツ幅の設定で、1カラムと2カラムで処理を分けています。
はじめ1カラムと2カラムの設定ってどこだろう、って思いました。
カスタマイザーで、固定ページを選択すると、「テーマオプション」というメニューが出てきますので、そこから選択出来ます。

フォントの設定
function twentyseventeen_fonts_url() {
・・・(省略)・・・
}
function twentyseventeen_resource_hints( $urls, $relation_type ) {
・・・(省略)・・・
}
add_filter( 'wp_resource_hints', 'twentyseventeen_resource_hints', 10, 2 );
ウィジェットの設定
function twentyseventeen_widgets_init() {
・・・(省略)・・・
}
add_action( 'widgets_init', 'twentyseventeen_widgets_init' );
抜粋文表示(MOREリンク)
抜粋文表示 the_excerpt(); の変更。
function twentyseventeen_excerpt_more( $link ) {
・・・(省略)・・・
}
add_filter( 'excerpt_more', 'twentyseventeen_excerpt_more' );
no-jsクラス
JavaScriptが有効でない場合の、no-jsクラスを使用する時。
function twentyseventeen_javascript_detection() {
・・・(省略)・・・
}
add_action( 'wp_head', 'twentyseventeen_javascript_detection', 0 );
トラックバックの設定
function twentyseventeen_pingback_header() {
・・・(省略)・・・
}
add_action( 'wp_head', 'twentyseventeen_pingback_header' );
だいたい書いたので、今回はこの辺で終わります。
関連記事
-
-
WordPress レスポンシブ テンプレート 元にサイトを作ってみる その1
「レスポンシブ テンプレート の メニューやブログの設置」の記事では、メニューやブログの設置例をやっ
-
-
WordPress の PHP をちょっと見てみよう Ⅰ
WordPress には、たくさんのファイルが入っています。 ここではテーマ内ではなく、トップ
-
-
WordPress タイトルの変更
テンプレートタグ the_title(); get_the_title(); WordPress
-
-
WordPress リビジョンを削除し、テーブルを最適化してDBの容量を削減
WordPress リビジョン機能 リビジョンは過去の記事を保存してくれる WordPress の
-
-
WordPress カレンダー カスタマイズ(add_filter版)
前回、「WordPress の PHP をちょっと見てみよう Ⅲ」でフックをやったので、カレンダーで
-
-
wordpress カスタム投稿で 2ページ目以降が404になってしまう
wordpress のカスタム投稿で、ニュースのページを作っていました。 ニュース一覧で、ペー
-
-
WordPress レスポンシブ テンプレート の メニューやブログの設置
前回の 「WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダ
-
-
WordPress カレンダー カスタマイズ
WordPressでカレンダーの表示部分をいじってみようかと思います。 どうやら、カレンダー関
-
-
WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダウンロード
WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダウンロード
-
-
WordPress twentyseventeen の function.php を見る – その1
WordPress の最低限の機能だけのシンプルなテンプレートが欲しかったので、作っておくことにしま